大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

  好了不扯,接著上一篇H5坦克大戰(zhàn)之【玩家控制坦克移動(dòng)】(http://www.cnblogs.com/zhouhuan/p/H5_tankgame2.html),今天我們來(lái)繼續(xù)看玩家怎么控制坦克,今天主要修復(fù)兩處bug,第一個(gè)bug,玩家按下方向鍵時(shí),坦克的炮筒應(yīng)該指向相應(yīng)的方向,并向該方向移動(dòng),第二,坦克不能開(kāi)出邊界,上一節(jié)的代碼坦克是可以開(kāi)出邊界的,這樣顯然不行,會(huì)讓坦克沒(méi)有安全感,我們?cè)斐隽怂?,就要給它安全感。

 

  1. 修復(fù)第一個(gè)bug

  我們的思路是,給造坦克的函數(shù)里再傳一個(gè)方向的參數(shù),我們讓"u", "d", "l", "r"分別表示上下左右,封裝這樣一個(gè)可以傳方向的函數(shù)之后,我們?cè)谟脩舭聪虏煌逆I時(shí)傳不同的參數(shù)進(jìn)去,由于整個(gè)地板每隔100毫秒會(huì)刷新一次,那么這個(gè)函數(shù)就能以肉眼分辨不出來(lái)的速度,在用戶按下鍵的一瞬間相應(yīng)地生產(chǎn)出不同方向的坦克了。

  如下:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

//封裝一個(gè)畫(huà)坦克的函數(shù),傳兩個(gè)參數(shù)x,y,分別代表左上角的橫縱坐標(biāo)//再增加一個(gè)參數(shù)dir來(lái)表示方向 上下左右分別傳"u" "d" "l" "r"function drawTank(x,y,dir){    var cxt = getCxt();    switch(dir){        case "u":                             //此時(shí)造一個(gè)向上的坦克
            cxt.fillStyle = "#542174";
            cxt.fillRect(x,y,20,65);                
            cxt.fillRect(x+70,y,20,65);                
         
        
		

網(wǎng)友評(píng)論