createjs遊戲設計(js編寫遊戲)

本文目錄一覽:

如何使用Createjs來編寫HTML5遊戲EaselJS簡介

createJs的由來,基礎什麼的就不說了,就直接說createJs的用法吧。

首先到createJs官網下載,createJs分成easelJs(圖形動畫)、preloadJs(文件加載)、soundJs(音頻控制)以及tweenJs(補間動畫)四部分,大家下載的時候,建議下載兩個文件,一個是壓縮版文件,用於項目中的引用,再下載個源碼文件,用於查看用法、API、demo等。因為樓主目前只用了easelJs和preloadJs,所以暫時就只說這兩個,其實就這兩個已經非常夠用了。

接下來開始分析代碼:

首先引入js文件

script

src=”easeljs-0.7.1.min.js”/script

script

src=”preloadjs-0.4.1.min.js”/script

然後進行舞台初始化操作:

function

init(){

stage

=

new

createjs.Stage(“cas”);

C_W

=

stage.canvas.width;

C_H

=

stage.canvas.height;

var

manifest

=

[

{src:”image/man.png”

,

id:”man”},

{src:”image/ground.png”

,

id:”ground”},

{src:”image/bg.png”

,

id:”bg”},

{src:”image/high.jpg”

,

id:”high”},

{src:”image/coins.png”

,

id:”coin”}

]

loader

=

new

createjs.LoadQueue(false);

loader.addEventListener(“complete”

,

handleComplete);

loader.loadManifest(manifest);

drawLoading();

}

上面就用到了preloadJs中的方法,實例化一個loader,把需要加載的圖片文件放在manifest裡面,進行加載,加載完成後調用回調handleCompelete函數:

function

handleComplete(){

//當圖片素材load完後執行該方法

var

manImage

=

loader.getResult(“man”),

lowground

=

loader.getResult(“ground”),

highground

=

loader.getResult(“high”),

bgImage

=

loader.getResult(“bg”),

coins

=

loader.getResult(“coin”);

sky

=

new

createjs.Shape();

sky.graphics.bf(bgImage).drawRect(0,0,C_W,C_H);

sky.setTransform(0,

0,

1

,

C_H/bgImage.height);

stage.addChild(sky);

man

=

createMan(200,326,manImage);

//該框為判定角色的判定區域

kuang

=

new

createjs.Shape();

kuang.graphics.beginStroke(“rgba(255,0,0,0.5)”).drawRect(0

,

,

man.size().w

,

man.picsize().h*1.5);

//

stage.addChild(kuang);

mapHandle(lowground

,

highground

,

coins);

createjs.Ticker.timingMode

=

createjs.Ticker.RAF;//設置循環方法,可以是requestAnimationFrame或者是setTimeout

createjs.Ticker.setFPS(30);//舞台幀率控制

createjs.Ticker.addEventListener(“tick”,

tick);//綁定舞台每一幀的邏輯發生函數

window.addEventListener(“keydown”

,

function(event){

event

=

event||window.event;

if(event.keyCode===32man.jumpNumman.jumpMax){

man.jump();

}

})

}

獲得加載完成後端的圖片數據就直接用loader.getResult就可以獲取了,跑酷遊戲需要一個背景,所以,我們實例化一個sky,然後進行位圖繪製,bf方法是beginBitmapFill的縮寫,該方法就是開始繪製位圖,後面的drawRect是位圖的繪製區域,區域當然是整個畫布啦,所以就是drawRect(0,0,C_W,C_H)。實例化出來sky後就直接添加到舞台stage裡面就行了。接下來是實例化一個角色,createMan方法後面有說,是自己封裝的。

然後進行舞台循環設置,上面有注釋了,就不說了。

如何使用Createjs來編寫HTML5遊戲使用EaselJS中的製作Sprite類製作

createJs的由來,基礎什麼的就不說了,就直接說createJs的用法吧。

首先到createJs官網下載,createJs分成easelJs(圖形動畫)、preloadJs(文件加載)、soundJs(音頻控制)以及tweenJs(補間動畫)四部分,大家下載的時候,建議下載兩個文件,一個是壓縮版文件,用於項目中的引用,再下載個源碼文件,用於查看用法、API、demo等。因為樓主目前只用了easelJs和preloadJs,所以暫時就只說這兩個,其實就這兩個已經非常夠用了。

如何使用Createjs來編寫HTML5遊戲完成一個簡單的打飛機遊戲

CreateJS包含4個部分,EaselJS、TweenJS、PreloadJS、SoundJS,其中最主要的部分EaselJS包含了開發Html5遊戲的所有功能,僅僅使用EaselJS幾乎可以完成所有的開發工作,其餘三項可以看作EaselJS的輔助工具。比如響應tick事件然後改變元素坐標就可以實現動畫功能,而使用TweenJS來創建補間動畫,則可以省去你很多代碼,簡化了操作。一個簡單的tick動畫看起來是這樣的:pre t=”code” l=”js”var stage, circle;

function init(){

stage = new createjs.Stage(document.getElementById(‘game’));

createjs.Ticker.addEventListener(“tick”, handleTick);

createjs.Ticker.setFPS(60);

circle = new createjs.Shape();

circle.graphics.f(“red”).dc(0,0,50);

circle.x = 0;

circle.y = 100;

stage.addChild(circle);

circle.addEventListener(“click”, function(event){

createjs.Ticker.setPaused(!createjs.Ticker.getPaused());

});

}

function handleTick(event){

if(!event.paused){

circle.x +=5;

if(circle.x 1000){

circle.x = 0;

}

}

stage.update();

}

原創文章,作者:CJJF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139751.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CJJF的頭像CJJF
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 為什麼不用Python開發遊戲

    Python是一種高級編程語言,擁有簡單易學、代碼簡潔等優點。同時,Python也是一種多用途的語言,可以用於Web開發、數據分析以及機器學習等領域。然而,對於遊戲開發領域,Pyt…

    編程 2025-04-29
  • 使用Python製作遊戲代碼

    Python是一種高級編程語言,因其簡潔明了的代碼風格、易於學習和使用而備受青睞。Python已經成為遊戲製作的熱門選擇之一,可以通過Pygame、Panda3D等工具來實現遊戲制…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • Python貪吃蛇遊戲設計報告

    本文將從遊戲設計的目標、實現思路、技術要點、代碼實現等多個方面對Python貪吃蛇遊戲進行詳細闡述。 一、遊戲設計的目標 貪吃蛇是一款經典的遊戲,我們的遊戲設計不僅要實現基本的玩法…

    編程 2025-04-28
  • 用Python編寫推箱子遊戲並上傳至百度網盤

    本文將詳細闡述如何使用Python編寫一個推箱子遊戲,並將代碼上傳至百度網盤,以便大家學習和使用。 一、遊戲介紹 推箱子遊戲是一種非常經典的益智類遊戲,遊戲中,玩家需要將箱子推到指…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • Python做的遊戲可以導出嗎

    Python是一種高級編程語言,最初用於解決系統管理員的日常任務,具有易學、易用、高效的特點,因此在遊戲開發中也逐漸受到了廣泛的關注。那麼,Python做的遊戲可以導出嗎?答案是肯…

    編程 2025-04-27

發表回復

登錄後才能評論