HTML5 游戏开发 之 资源加载篇(2)
四) 下载过程的管理<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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 & lt; audio & gt를 사용하여 HTML5에 오디오를 포함시키는 방법을 설명합니다. 형식 선택에 대한 모범 사례 (MP3, OGG Vorbis), 파일 최적화 및 재생에 대한 JavaScript 컨트롤을 포함한 요소. 다중 오디오를 사용하는 것을 강조합니다

이 기사에서는 HTML5 양식을 작성하고 검증하는 방법을 설명합니다. 그것은 & lt; form & gt; 요소, 입력 유형 (텍스트, 이메일, 번호 등) 및 속성 (필수, 패턴, 최소, 최대). HTML5의 장점은 오래된 방법에 비해 형성됩니다

이 기사에서는 HTML5 페이지 가시성 API를 사용하여 페이지 가시성을 감지하고 사용자 경험을 향상 시키며 리소스 사용량을 최적화하는 것에 대해 설명합니다. 주요 측면에는 미디어 일시 정지, CPU 부하 감소 및 가시성 변경에 기반한 분석 관리가 포함됩니다.

이 기사에서는 Viewport Meta 태그를 사용하여 모바일 장치의 페이지 스케일링을 제어하여 폭과 최적의 응답 성 및 성능을위한 초기 스케일과 같은 설정에 중점을 둡니다. character count : 159

이 기사는 지리적 위치 API를 사용하여 사용자 위치 개인 정보 및 권한 관리, 권한 요청, 데이터 보안 보장 및 개인 정보 보호법 준수에 대한 모범 사례를 강조하는 것에 대해 설명합니다.

이 기사는 JavaScript를 사용하여 대화식 HTML5 게임을 만드는 자세한 내용입니다. 게임 디자인, HTML 구조, CSS 스타일, JavaScript 로직 (이벤트 처리 및 애니메이션 포함) 및 오디오 통합을 다룹니다. 필수 JavaScript 라이브러리 (Phaser, PI

이 기사는 HTML5 드래그 앤 드롭 API를 사용하여 대화식 사용자 인터페이스를 생성하고 요소를 드래그 가능하게 만들고 주요 이벤트를 처리하며 사용자 정의 피드백으로 사용자 경험을 향상시키는 방법을 자세히 설명합니다. 또한 일반적인 함정에 대해 설명합니다

이 기사에서는 실시간, 양방향 클라이언트 서버 커뮤니케이션을위한 HTML5 WebSockets API를 설명합니다. 클라이언트 측 (JavaScript) 및 서버 측 (Python/Flask) 구현에 대해 자세히 설명하여 확장 성, 상태 관리,
