微信小游戲資源加載頁與雲存儲


------------恢復內容開始------------

  • 微信小游戲為什么要有開始資源加載頁?

    當小游戲包過大的時候,我們如何優化包的大小,最直接的先把圖片或者聲音等資源放到雲端,等小游戲初始化后再從雲端下載到本地,而小游戲包里只放代碼和幾張簡單的加載圖。

  • 為什么微信加載資源的頁面和初始化的頁面是兩個頁面?

    微信小游戲自帶初始化頁面是,微信從雲端下載小游戲代碼到本地(這個是自帶的,不需要處理,更沒有必要再自定義)。資源加載頁是,當小游戲初始化完成后再下載資源圖片和其他媒體素材,如果沒有下載進度頁面會停住用戶體驗不好,所以需要一個素材下載的進度條頁面,下載完成,進度條走完,就可以進入游戲。

  • 雲存儲哪家好,做小游戲當然微信自帶雲存儲!

    我們將媒體資源放到遠端文

件服務器,CDN等等,但是相對於現在流行的比如阿里雲,AWS,騰訊雲等等,甚至什么雲盤啥的都不如微信自帶的雲存儲。因為免費5  個  G!!!!!足夠了。而且上傳文件后會生成一個id,通過微信下載函數傳入此Id,就可以下載了!

  


  自己動手豐衣足食
  1. 首先,我們需要將游戲的媒體資源放到雲端,這里我們用微信官方的雲存儲

  • 在開發平台界面打開雲開發平台,

    

  •   會初始化些步驟,很簡單
  • 打開存儲,這幾我們可以新建文件夾,以及文件 

  •  編寫下載文件

  •   將所有要下載的文件id,用數組記錄下來

  

export const booms = [{
    name: 'boom1', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/1.png', }, { name: 'boom2', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/2.png', }, { name: 'boom3', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/3.png', }, { name: 'boom4', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/4.png', }, { name: 'boom5', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/5.png', } ]
  • 批量下載
  • for (let obb of booms) {
        wx.cloud.downloadFile({
          fileID: obb.fileId, // 文件 ID
          success: res => { index++ // 返回臨時文件路徑 let obj = obb obj.url = res.tempFilePath list.push(obj) if (netResourse.length == list.length) { databus.allImages = list loadingImage() new Main(ctx) } initRender(ctx, index / netResourse.length * 100) }, fail: console.error }) }

    下載之后會返回一個本地緩存tempFilePath,在new image()直接賦值給.src屬性   這個路勁就是在本機內存里,可以理解是游戲包里的相對路勁

   並且記錄返回數,這樣就知道和總下載數的比例,實現進度條的百分比了 

------------恢復內容結束------------

  • 微信小游戲為什么要有開始資源加載頁?

    當小游戲包過大的時候,我們如何優化包的大小,最直接的先把圖片或者聲音等資源放到雲端,等小游戲初始化后再從雲端下載到本地,而小游戲包里只放代碼和幾張簡單的加載圖。

  • 為什么微信加載資源的頁面和初始化的頁面是兩個頁面?

    微信小游戲自帶初始化頁面是,微信從雲端下載小游戲代碼到本地(這個是自帶的,不需要處理,更沒有必要再自定義)。資源加載頁是,當小游戲初始化完成后再下載資源圖片和其他媒體素材,如果沒有下載進度頁面會停住用戶體驗不好,所以需要一個素材下載的進度條頁面,下載完成,進度條走完,就可以進入游戲。

  • 雲存儲哪家好,做小游戲當然微信自帶雲存儲!

    我們將媒體資源放到遠端文

件服務器,CDN等等,但是相對於現在流行的比如阿里雲,AWS,騰訊雲等等,甚至什么雲盤啥的都不如微信自帶的雲存儲。因為免費5  個  G!!!!!足夠了。而且上傳文件后會生成一個id,通過微信下載函數傳入此Id,就可以下載了!

  


  自己動手豐衣足食
  1. 首先,我們需要將游戲的媒體資源放到雲端,這里我們用微信官方的雲存儲

  • 在開發平台界面打開雲開發平台,

    

  •   會初始化些步驟,很簡單
  • 打開存儲,這幾我們可以新建文件夾,以及文件 

  •  編寫下載文件

  •   將所有要下載的文件id,用數組記錄下來

  

export const booms = [{
    name: 'boom1', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/1.png', }, { name: 'boom2', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/2.png', }, { name: 'boom3', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/3.png', }, { name: 'boom4', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/4.png', }, { name: 'boom5', fileId: 'cloud://imge8-5z6gt.696d-imge8-5z6gt-1300789023/booms/5.png', } ]
  • 批量下載
  • for (let obb of booms) {
        wx.cloud.downloadFile({
          fileID: obb.fileId, // 文件 ID
          success: res => { index++ // 返回臨時文件路徑 let obj = obb obj.url = res.tempFilePath list.push(obj) if (netResourse.length == list.length) { databus.allImages = list loadingImage() new Main(ctx) } initRender(ctx, index / netResourse.length * 100) }, fail: console.error }) }

    下載之后會返回一個本地緩存tempFilePath,在new image()直接賦值給.src屬性   這個路勁就是在本機內存里,可以理解是游戲包里的相對路勁

   並且記錄返回數,這樣就知道和總下載數的比例,實現進度條的百分比了,並且當進度條100%時 開始游戲

 

送上我的小游戲 一開始界面就是下載資源頁 可以看看效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM