久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5 游戲開發 之 資源加載篇(2)

在游戲開發的過程中,很有可能會有成千上百張圖片。最直接的方式,是將這些圖片編寫在代碼中,但是圖片的名字很容易改變的,會造成大量的維護工作,甚至影 ... ...,HTML5中國,中
       四) 下載過程的管理

       4.1) 如何管理成千上百的資源

       在游戲開發的過程中,很有可能會有成千上百張圖片。最直接的方式,是將這些圖片編寫在代碼中,但是圖片的名字很容易改變的,會造成大量的維護工作,甚至影響代碼的打包和發布。我的同事Boris,在他的代碼演示庫中,給出了一個參考實現方式,如下。這種方式,可以保證,在需要修改或者調整資源名稱或者路徑的時候,不需要接觸代碼。

  1. {
  2.   "assetRoot": "url/to/assets",
  3.   "bundles": [
  4.   {
  5.         "name": "unique bundle name",
  6.         "contents": [
  7.         "relative/path/to/asset.jpg",
  8.         "another/asset.mp3"
  9.           ]
  10.   },
  11.   "autoDownload": true
  12. }
  13. var gal = new GameAssetLoader("http://path.to/gal.manifest");
  14. // Load the GAL. If manifest indicates autoDownload, this call will
  15. // start loading assets one by one.
  16. gal.init(function() {
  17. // Called when the library is initialized
  18. });
復制代碼

       更完整的代碼,可以參考GitHub上的源代碼

       4.2) 如何實現批處理的下載

       再獲得了資源列表之后,就要開始資源的下載。顯然,需要這樣的方法。

  1. AssetManager.prototype.downloadAll = function(downloadCallback) {
  2.   for (var i = 0; i < this.downloadQueue.length; i++) {
  3.   var path = this.downloadQueue[i];
  4.   var img = new Image();
  5.   var that = this;
  6.   img.addEventListener("load", function() {
  7.         // coming soon
  8.   }, false);
  9.   img.addEventListener("error", function() {
  10.   // coming soon
  11.   }, false);
  12.   img.src = path;
  13. }
  14. }
  15. <pre>
  16. 下載的過程中,一般情況下都需要一個進度條,來顯示完成的情況,所以必須對AssetManager進行計數。<strong><strong>
  17. </strong></strong>

  18. <pre lang="html">
  19. function AssetManager() {
  20.   this.successCount = 0;
  21.   this.errorCount = 0;
  22.   this.downloadQueue = [];
  23. }

  24. AssetManager.prototype.isDone = function() {
  25.   return (this.downloadQueue.length == this.successCount + this.errorCount);
  26. }
  27. AssetManager.prototype.getProcess = function() {
  28.   return (this.successCount + this.errorCount)/this.downloadQueue.length;
  29. }
復制代碼

       顯然,也需要對每個img的load和error事件,進行計數。還請注意downloadAll函數有個參數叫做downloadCallback,在資源下載完成以后,通知此函數,進入游戲過程中。

  1. img.addEventListener("load", function() {
  2.   that.successCount += 1;
  3.   if (that.isDone()) {
  4.         downloadCallback();
  5.   }
  6. }, false);
  7. img.addEventListener("error", function() {
  8.   that.errorCount += 1;
  9.   if (that.isDone()) {
  10.         downloadCallback();
  11.   }
  12. }, false
復制代碼

       4.3) 游戲中的不同關卡

       游戲通常是分關卡的,完全沒有必要在一開始就將游戲的所有資源下載到本地,畢竟不是每個玩家都會將游戲通關。為了按需下載,比較完備的資源加載器,應該可以對每個資源配上一個標簽或者屬性,可以標志它屬于哪一關。每一關的開始,只下載和本關相關聯的資源,在每一關結束的時候,在去下載下一關的資源。不僅減少用戶的不必要的等待時間,還可以有效的減少服務器的壓力。

       5.資源加載器的具體實現

       5.1 PreloadJS

       官方網站:http://www.createjs.com/#!/PreloadJS/download

       開源代碼:https://github.com/CreateJS/PreloadJS/

       專門用于資源下載的類庫,非常好用,考慮的也非常全面,首先推薦的一款軟件,尤其是讀者不希望加載特別大的游戲引擎是,這款軟件可以作為首選。

       具體的例子可以參考:https://github.com/CreateJS/PreloadJS/tree/master/examples

(未完待續)

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
本文主要內容有:框架與組件、構建生態、開發技巧與調試、html、css與重構、native/hybrid/桌面開發、前端/H5優化、全棧/全端開發、研究實驗、數據分析與監控、其它軟技能、前端技術網
主站蜘蛛池模板: 成人免费在线观看视频 | 精品国产色 | 成人精品国产免费网站 | 国产一区二区在线播放视频 | 一区二区三区不卡视频 | 国产成人jvid在线播放 | 成人啊啊啊 | 观看av| 人妖videosex高潮另类 | 精品一区二区久久久久久久网站 | 国产久| 国产在线a| 久久久入口 | av日韩在线播放 | 国产精品久久久久久久久久 | 欧美啪啪 | 国产探花在线精品一区二区 | 18成人在线观看 | 中文字幕欧美一区 | 色综合色综合网色综合 | 亚洲精品黄色 | 日韩欧美在线一区 | 成人在线观 | 国产欧美一区二区三区久久手机版 | 国产午夜精品久久久 | 日本视频在线播放 | 久久久国产精品入口麻豆 | 成人精品一区二区三区中文字幕 | 视频二区| 午夜影院在线观看 | caoporn国产 | 欧美人妇做爰xxxⅹ性高电影 | 欧美自拍另类 | 欧美视频一级 | 欧美www在线观看 | 看羞羞视频 | 久久国产一区 | 91在线色视频| 国产精品一区二区免费 | 91精品国产色综合久久 | 日韩h |