四) 下载过程的管理<br> <br> 4.1) 如何管理成千上百的资源<br> <br> 在游戏开发的过程中,很有可能会有成千上百张图片。最直接的方式,是将这些图片编写在代码中,但是图片的名字很容易改变的,会造成大量的维护工作,甚至影响代码的打包和发布。我的同事Boris,在他的代码演示库中,给出了一个参考实现方式,如下。这种方式,可以保证,在需要修改或者调整资源名称或者路径的时候,不需要接触代码。<br> <br>
- {<br>
- "assetRoot": "url/to/assets",<br>
- "bundles": [<br>
- {<br>
- "name": "unique bundle name",<br>
- "contents": [<br>
- "relative/path/to/asset.jpg",<br>
- "another/asset.mp3"<br>
- ]<br>
- },<br>
- "autoDownload": true<br>
- }<br>
- var gal = new GameAssetLoader("http://path.to/gal.manifest");<br>
- // Load the GAL. If manifest indicates autoDownload, this call will<br>
- // start loading assets one by one.<br>
- gal.init(function() {<br>
- // Called when the library is initialized<br>
- });
- AssetManager.prototype.downloadAll = function(downloadCallback) {<br>
- for (var i = 0; i
- var path = this.downloadQueue[i];<br>
- var img = new Image();<br>
- var that = this;<br>
- img.addEventListener("load", function() {<br>
- // coming soon<br>
- }, false);<br>
- img.addEventListener("error", function() {<br>
- // coming soon<br>
- }, false);<br>
- img.src = path;<br>
- }<br>
- }<br>
<br>
- 下载的过程中,一般情况下都需要一个进度条,来显示完成的情况,所以必须对AssetManager进行计数。<br>
- <br>
- <br>
<br>
- function AssetManager() {<br>
- this.successCount = 0;<br>
- this.errorCount = 0;<br>
- this.downloadQueue = [];<br>
- }<br>
- <br>
- AssetManager.prototype.isDone = function() {<br>
- return (this.downloadQueue.length == this.successCount + this.errorCount);<br>
- }<br>
- AssetManager.prototype.getProcess = function() {<br>
- return (this.successCount + this.errorCount)/this.downloadQueue.length;<br>
- }
- img.addEventListener("load", function() {<br>
- that.successCount += 1;<br>
- if (that.isDone()) {<br>
- downloadCallback();<br>
- }<br>
- }, false);<br>
- img.addEventListener("error", function() {<br>
- that.errorCount += 1;<br>
- if (that.isDone()) {<br>
- downloadCallback();<br>
- }<br>
- }, false

本文讨论了使用视口元标记来控制移动设备上的页面缩放,重点是宽度和初始尺度之类的设置,以获得最佳响应和性能。

本文使用JavaScript详细介绍了创建Interactive HTML5游戏。 它涵盖了游戏设计,HTML结构,CSS样式,JavaScript逻辑(包括事件处理和动画)以及音频集成。 必需的JavaScript库(Phaser,Pi

本文解释了如何使用&lt; audio&gt;元素,包括用于格式选择的最佳实践(MP3,OGG Vorbis),文件优化和JavaScript控件用于播放。 它强调使用多个音频f

本文讨论了使用GeOlocation API管理用户位置隐私和权限,并强调要求权限,确保数据安全性并遵守隐私法律的最佳实践。

本文解释了如何创建和验证HTML5表格。 它详细介绍了&gt;元素,输入类型(文本,电子邮件,编号等)和属性(必需,模式,最小,最大)。 HTML5的优势比旧方法形成

本文讨论了使用HTML5页面可见性API来检测页面可见性,提高用户体验并优化资源使用情况。关键方面包括暂停媒体,减少CPU负载以及基于可见性变化管理分析。

本文介绍了如何使用HTML5拖放API来创建交互式用户界面,详细介绍了使元素可拖动的步骤,处理关键事件并通过自定义反馈来增强用户体验。它还讨论了一个常见的陷阱

本文解释了HTML5 Websockets API,用于实时双向客户服务器通信。 它详细详细介绍了客户端(JavaScript)和服务器端(Python/Flask)的实现,以应对可伸缩性,状态管理,一个挑战


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载
最流行的的开源编辑器