createjs 小遊戲開發實戰

2022-07-04 17:51:07 字數 3090 閱讀 5442

這裡來一篇小遊戲實戰篇。

效果圖:(錄屏的時候有點卡)

demo位址:如果對你有用,請點

star

遊戲整體思路實現

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 (that.copy.y > -copyy - 100)

that.stage.update(e);

}

}

2. 隨機繪製障礙物由於一條跑道肯定會有很多障礙物,對於超出螢幕的障礙物我們要進行『資源**』,否則遊戲到後面會越來越卡頓。

//

刪除越界的元素

for (var i = 0, flag = true, len = that.props.length; i < len; flag ? i++: i)

else}}

一共有3條賽道,我們不能出現3個道具同時出現在水平線上,因此我們會隨機取1~2個值繪製障礙物。所有遊戲我們都應該有引數去控制它的難易程度,免得臨上線的時候,老闆體驗之後覺得遊戲太難了……那就非常地尷尬了。 因此,我們會設定加速物體,減速物體,炸彈出現的比例,後期可以調整這個比例來設定遊戲的難易程度。

var num = parseint(2 * math.random()) + 1, i;

for (i = 0; i < num; i++) else

if ((type >= 2) && (type <= 5)) else

if ((type >= 6) && (type <= 10))

}

第一次繪製完障礙物之後,會隨機時間繪製下一次的障礙物。

var time = (parseint(3 * math.random()) + 1);  //

隨機取1~3整數

//隨機時間繪製障礙物

settimeout(function

() , time * 400); //

400ms ~ 1200ms

3.碰撞檢測我們用乙個陣列來存放汽車佔的矩形區域,障礙物佔的矩形區域,在每一次tick的時候迴圈遍歷陣列,看是否有重疊的,若有重疊,則發生了碰撞。

createjs的一些小知識:

1. 暫停和恢復舞台渲染 

createjs.ticker.addeventlistener(「tick」, tick); 

function

tick(e)

}

createjs.ticker.paused = 1; //

在函式任何地方呼叫這個,則會暫停tick裡面的處理 createjs.ticker.paused = 0; //恢復遊戲

2. 由於汽車會有加速,減速,彈氣泡的效果。因此我們把這幾個效果繪製在同乙個container中,方便統一管理,對這些效果設定name屬性,之後可以直接使用getchildbyname獲取到該物件。

container.name = 『role』; //

設定name值

car = this.stage.getchildbyname(「role」); //

使用name值方便獲取到該物件

3. 預載入 preload (createjs 的 preload 非常的實用)

一開始是自己寫的預載入,後來發現createjs裡面對是有跨域處理的,自己處理跨域的img就比較麻煩,所以直接使用createjs的預載入。

//放置靜態資源的陣列

var manifest =[

];var queue = newcreatejs.loadqueue();

queue.on('complete', handlecomplete, this);

queue.loadmanifest(manifest);

//資源載入成功後,進行處理

functionhandlecomplete()

一般做乙個遊戲,我們正常都會構建乙個遊戲類來承載。 下面是乙個遊戲正常有的介面:

;(function

() cargame.prototype =,

render:

function

() ,

//在遊戲結束的時候批量銷毀

destroy:function

(),

//由於期間使用者可能切出程式進行其他操作,因此都需要乙個暫停的介面

pause:function

() ,

//重新開始遊戲

restart:function

(), gameover:

function

() }

})()

C 開發小遊戲 掃雷

如下 to change this license header,choose license headers in project properties.to change this template file,choose tools templates and open the templat...

小遊戲雲開發入門

wx 當下雲開發比較火,不過本人並不是很感冒,因為他的好處顯而易見,但缺點也是致命的。好處就是1.不用自己買伺服器,網域名稱認證,不用擔心伺服器過期 省去了很多時間。2.初始容量免費,基本夠用。缺點就是不能跨平台。這個就很傷了,我們開發一款遊戲不可能只上乙個平台吧!雖然我們可以上所有擁有雲開發能力的...

《windowsPhone遊戲開發實戰》

2012年10月20號,我完成了這本書的初稿。2012年12月23號 世界末日 那天我收到了這本書的初稿。算起來這算是我寫的第二本,不過第一本是和別人合寫的,這次算是獨立寫的。寫書是為了對過去2年技術積累的乙個總結,寫完還是覺得有很多不足,個人積累得還不夠。本書每一章有完整的demo,在電子工業出版...