大數(shù)據培訓,云培訓,數(shù)據挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經理培訓

大數(shù)據培訓,云培訓,數(shù)據挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經理培訓

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

 

  1. 修復第一個bug

  我們的思路是,給造坦克的函數(shù)里再傳一個方向的參數(shù),我們讓"u", "d", "l", "r"分別表示上下左右,封裝這樣一個可以傳方向的函數(shù)之后,我們在用戶按下不同的鍵時傳不同的參數(shù)進去,由于整個地板每隔100毫秒會刷新一次,那么這個函數(shù)就能以肉眼分辨不出來的速度,在用戶按下鍵的一瞬間相應地生產出不同方向的坦克了。

  如下:

大數(shù)據培訓,云培訓,數(shù)據挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經理培訓

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