1. 程式人生 > >HTML5遊戲實戰之20行代碼實現打地鼠

HTML5遊戲實戰之20行代碼實現打地鼠

before line asc win csdn 實戰 動畫 and wiki

之前寫過一篇打地鼠的博客70行的代碼實現打地鼠遊戲,細致思考過後,發現70行代碼都有點多余了,應用tangide的控件特性,能夠將代碼量縮減到20行左右。

先show一下終於成果,點擊試玩:打地鼠。或者掃描二維碼:

技術分享

假設你想在這個遊戲上改進。點擊這裏。

開始解說之前,打個廣告。歡迎html5遊戲開發愛好者掃描下方二維碼或者搜群號223466431,增加開發人員QQ群,我們免費提供最高速的開發工具。我們的全部html5遊戲都開源。

整個遊戲的開發。基於在線H5遊戲開發工具TangIDE,相關開發文檔點擊這裏,觀看開發視頻點擊這裏。假設您致力於開發H5輕應用,請點這裏。

1. 準備工作

瀏覽器打開TangIDE鏈接,右上角有登陸button,選擇QQ登陸。
瀏覽器推薦谷歌瀏覽器或者獵豹瀏覽器。

遊戲所需的資源文件夾:共享資源/成套資源/模板/打地鼠/

2. 創建第一個場景

打開TangIDE後,默認有兩個場景,一個是資源載入窗體,能夠不用管,另外有個默認主場景。這個場景能夠作為我們的第一個場景。把裏面的足球和和草地刪掉,場景改名為“開始界面”,然後更改背景。依次把所須要的控件拖拽進來,例如以下圖所看到的:

技術分享

分別為微信控件,音效控件。背景音樂控件編輯特有屬性:

技術分享

技術分享

技術分享

3. 創建第二個場景

新建一個場景,將場景名字改為“遊戲界面”。

地鼠的制作:

a、拖一個圖片控件進來。將背景圖片清空。
b、拖一個幀動畫到圖片上。作為這個圖片控件的子控。

c、在幀動畫的特有屬性中加入地鼠的幀動繪圖片。

技術分享

d、為幀動畫分組。

技術分享

技術分享

e、利用動畫編輯器為地鼠添加出洞入洞的動畫。

技術分享

技術分享

技術分享

f、編輯幀動畫的onClick事件。加入例如以下代碼,這段代碼響應擊打動作,播放音效並得分,同一時候播放被打的動畫效果:

var win = this.getWindow();
win.hammer.setPosition(this.getParent().x,this.getParent().y);
win.hammer.animate("down");
win.playSoundEffect("擊打.mp3", function onDone() {console.log("play finished");});
win.score++;
win.find("雲/計分板/得分").setValue(win.score);
var ele = this;
ele.play("hit", 2, function() {
    ele.play("out");
});


g、選中幀動畫的父控件。編輯它的onUpdateTransform事件。加入例如以下代碼,這段代碼表示該控件僅僅顯示固定區域,假設子控件超出該區域不顯示,實現地鼠的出入洞效果。

<pre class="javascript" name="code">canvas.beginPath();
canvas.rect(0,0,this.w,this.h);
canvas.clip();

這樣,一個完整的地鼠就做完了,遊戲界面中有16個地鼠。做好第一個。余下的復制粘貼就可以。

地鼠洞:

地鼠洞也須要一張圖片來表示,復制粘貼16個,依次擺放到地鼠下方就可以。

遊戲時間的控制:

拖拽一個定時器到場景中,將特有屬性中的運行次數設置為1,時長設置為30000。代表整個遊戲僅僅進行30s。

編輯onTimeOut事件,創建提前定義事件,打開新窗體。

var initData = this.getWindow().score;
this.openWindow("結束界面", 
	function (retData) {console.log("window closed.");}, false, initData);


地鼠隨機出入洞的實現:

拖拽一個定時器到場景中,將特有屬性中的運行冊數設置為1000000,時長為500。代表0.5s讓一個地鼠出洞。

編輯onTimeOut事件,這段代碼隨機選擇一個抵觸,讓其播放出洞動畫。

var win = this.getWindow();
var index = Math.floor(Math.random() * 16);
win.find("切圖-" + index).getChild(0).animate("up");

完整的界面如圖:

技術分享

遊戲的初始化:

編輯場景的onBeforeOpen事件,這段代碼主要是在遊戲開始前分數清零,將地鼠隱藏起來。

var win = this.getWindow();
var me  = this;
win.resetGame();
win.score = 0;
win.hammer = win.find("錘子");
win.hammer.setPivot(1,0.5);
for(var i = 0; i < 16; i++) {
    var gopher = win.find("切圖-" + i).getChild(0);
    gopher.setPosition(gopher.x, gopher.y + 100);
}

上述的20多行代碼。就完畢了一個功能完整的打地鼠遊戲,包含豐富的動畫,聲音效果,甚至微信分享。

結束場景很easy,不再贅述。

歡迎增加QQ群223466431交流。

HTML5遊戲實戰之20行代碼實現打地鼠