createjs 미니게임 개발 프로세스 예시
게임의 전반적인 아이디어가 구현되었습니다
1. 자동차가 가속하는 상태를 시뮬레이션하기 위해 원활한 배경 이미지를 구현합니다
this.backdrop = new createjs.Bitmap(bg);this.backdrop.x = 0;this.backdrop.y = 0;this.stage.addChild(that.backdrop);this.w = bg.width;this.h = bg.height;//创建一个背景副本,无缝连接var copyy = -bg.height;this.copy = new createjs.Bitmap(bg);this.copy.x = 0;this.copy.y = copyy; //在画布上y轴的坐标为负的背景图长//使用createjs的tick函数,逐帧刷新舞台createjs.Ticker.addEventListener("tick", tick);function tick(e) { if (e.paused !== 1) {//舞台逐帧逻辑处理函数that.backdrop.y = that.speed + that.backdrop.y; that.copy.y = that.speed + that.copy.y;if (that.copy.y > -40) { that.backdrop.y = that.copy.y + copyy; }if (that.copy.y > -copyy - 100) { that.copy.y = copyy + that.backdrop.y; } that.stage.update(e); } }
2. 활주로에는 장애물이 많을 것이기 때문에 화면을 넘어서는 장애물에 대해 '자원 회수'를 수행해야 합니다. 그렇지 않으면 나중에 게임이 점점 더 느려지게 됩니다.
// 删除越界的元素for (var i = 0, flag = true, len = that.props.length; i < len; flag ? i++ : i) {if (that.props[i]) {if (that.props[i].y > height + 300) { that.stage.removeChild(that.props[i]); that.props.splice(i, 1); flag = false; } else { flag = true; } } }
var num = parseInt(2 * Math.random()) + 1, i;for (i = 0; i < num; i++) {var type = parseInt(10 * Math.random()) + 1;// 设置道具出现比例if (type == 1) {/绘制炸弹 } else if ((type >= 2) && (type <= 5)) {//绘制加速道具} else if ((type >= 6) && (type <= 10)) {//绘制减速道具 } }
var time = (parseInt(3 * Math.random()) + 1); //随机取1~3整数// 随机时间绘制障碍物setTimeout(function () { that.propsTmp = []; //清空 that.drawObstacle(obj); }, time * 400); //400ms ~ 1200ms
3. 충돌 감지우리는 배열을 사용하여 자동차가 차지하는 직사각형 영역과 장애물이 차지하는 직사각형 영역을 저장합니다. 겹침이 있습니다. 겹침이 있으면 충돌이 발생한 것입니다.
createjs에 대한 약간의 지식: 1. 스테이지 렌더링 일시 중지 및 재개
createjs.Ticker.addEventListener(“tick”, tick); function tick(e) { if (e.paused === 1) { //处理 } } createjs.Ticker.paused = 1; //在函数任何地方调用这个,则会暂停tick里面的处理 createjs.Ticker.paused = 0; //恢复游戏
2. 왜냐하면 자동차는 가속, 감속 및 거품 터지는 효과를 갖기 때문입니다. 따라서 이러한 효과를 동일한 컨테이너에 그려서 통합 관리를 용이하게 합니다. 이러한 효과에 대한 name 속성을 설정한 다음 getChildByName을 직접 사용하여 개체를 얻을 수 있습니다.
container.name = ‘role’; //设置name值car = this.stage.getChildByName(“role”); //使用name值方便获取到该对象
3. 프리로드 프리로드(createjs 프리로드가 매우 실용적입니다)
처음에는 프리로드를 직접 작성했는데 나중에 createjs에 이미지에 대한 크로스 도메인 처리 기능이 있고 크로스 도메인 img를 처리한다는 것을 알게 되었습니다. 혼자서는 더 귀찮으니 createjs를 직접 preloading해서 사용하세요.
//放置静态资源的数组 var manifest = [ {src: __uri('./images/car_prop2_tyre@2x.png'), id: 'tyre'} ]; var queue = new createjs.LoadQueue(); queue.on('complete', handleComplete, this); queue.loadManifest(manifest); //资源加载成功后,进行处理 function handleComplete() { var tyre = queue.getResult('tyre'); //拿到加载成功后的img }
일반적으로 게임을 만들 때 일반적으로 게임 클래스를 만들어 호스팅합니다. 다음은 게임의 일반적인 인터페이스입니다.
;(function () {function CarGame(){} CarGame.prototype = { init:function(manifest) {this.preLoad(manifest); //资源预加载//时间倒计时this.prepare(3, 3); //倒计时3秒this.bindEvent(); }, render:function() { this.drawBg(bg1); this.drawRole(car, effbomb, effquick); this.drawObstacle(obj); },//在游戏结束的时候批量销毁destroy:function(){//移除tick事件createjs.Ticker.removeEventListener("tick", this.tick);//暂停里程,倒计时clearInterval(this.changem); clearTimeout(this.gametime); },//由于期间用户可能切出程序进行其他操作,因此都需要一个暂停的接口pause:function() {//暂停里程,倒计时clearInterval(this.changem); clearTimeout(this.gametime);//暂停页面滚动createjs.Ticker.paused = 1; },//重新开始游戏reStart:function(){ this.destroy(); this.init(manifest); }, gameOver:function(){ //显示爆炸效果 var car = this.stage.getChildByName("role"); car.getChildByName('bomb').visible = true; car.getChildByName('quick').visible = false; this.destroy(); } } })()
위 내용은 createjs 미니게임 개발 프로세스 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

win10 운영 체제를 사용할 때, 편집자가 아는 한, 이전 버전의 내장 게임 지뢰찾기가 여전히 저장되어 있는지 알고 싶습니다. 매장에 있는 그대로 microsoftminesweeper를 검색하시면 됩니다. 구체적인 단계를 에디터로 살펴보겠습니다~ Windows 10용 지뢰찾기 게임이 있나요? 1. 먼저 Win10 시작 메뉴를 열고 클릭하세요. 그런 다음 검색하고 검색을 클릭합니다. 2. 첫 번째 것을 클릭하세요. 3. 그런 다음 Microsoft 계정, 즉 Microsoft 계정을 입력해야 할 수도 있습니다. Microsoft 계정이 없으면 계정을 설치하고 등록하라는 메시지가 나타날 수 있습니다. 계정 비밀번호를 입력하고 다음을 클릭하세요. 4. 그런 다음 다운로드를 시작합니다

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

Chrome에서 미니 게임을 플레이하는 방법은 무엇인가요? 구글 크롬은 인간적인 배려로 디자인된 많은 기능을 갖추고 있으며, 그 안에서 다양한 즐거움을 얻을 수 있습니다. Google Chrome에는 Little Dinosaur Game이라는 매우 흥미로운 부활절 달걀 게임이 있습니다. 많은 친구들이 이 게임을 매우 좋아하지만 게임을 실행하는 방법을 모릅니다. 미니게임이 튜토리얼에 들어갑니다. Google Chrome에서 미니 게임을 플레이하는 방법 방법 1: [컴퓨터가 네트워크에서 연결 해제됨] 컴퓨터가 유선 네트워크를 사용하는 경우 네트워크 케이블을 분리하세요. 컴퓨터가 무선 네트워크를 사용하는 경우 무선 네트워크 연결을 클릭하여 연결을 끊으세요. 컴퓨터 오른쪽 하단에 있습니다. ② 컴퓨터의 인터넷 연결이 끊어진 상태에서 Google Chrome을 열면 Google Browse가 나타납니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

사용법: JavaScript에서 insertBefore() 메서드는 DOM 트리에 새 노드를 삽입하는 데 사용됩니다. 이 방법에는 삽입할 새 노드와 참조 노드(즉, 새 노드가 삽입될 노드)라는 두 가지 매개 변수가 필요합니다.
