自從威少砍下45+11+11的大號三雙之后,網(wǎng)上出現(xiàn)了各種各樣的神級段子,有一條是這樣的:
威少:Hey,哥們,最近過得咋樣!
濃眉:對方開啟了好友驗證,請先添加對方為好友
威少:。。。。。。
JRS:2333333
看到了一條比賽當天的數(shù)據(jù)統(tǒng)計:威少45+11+11,杜少32+8+3,伊巴卡19+11+2,雷吉杰克遜17+3+6,哈登16+6+16,雷霆管理層真應(yīng)該改名雷鋒管理層了,現(xiàn)在對雷霆管理層的每日一輪都是JRS們的常態(tài)了。
好了,不扯,接著上一篇博客(H5坦克大戰(zhàn)之畫出坦克http://www.cnblogs.com/zhouhuan/p/H5_tankgame.html),這一篇來看看怎么響應(yīng)玩家的操作讓坦克進行相應(yīng)的移動。
1. 了解keydown事件
keydown這一鍵盤事件的觸發(fā)條件為按下鍵盤上的任意鍵,如果按住不放,則會重發(fā)觸發(fā)。
示例:
window.onkeydown = function(){ alert("Merry Christmas!"); };
此時載入頁面之后,無論按下哪個鍵,都會彈出“Merry Christmas!”的彈窗。
2. 了解鍵碼和字符編碼
① 鍵碼
在發(fā)生keydown和keyup事件時,event對象的keyCode(鍵碼)屬性會包含一個代碼,與鍵盤上一個特定的鍵對應(yīng)。對于數(shù)字字母字符集,keyCode屬性的值與ASCII碼中對應(yīng)小寫字母或數(shù)字的編碼相同。字母中的大小寫不影響。
window.onkeydown = function(eve){ alert(eve.keyCode); };
此時按鍵盤上的任意鍵,便可得到所按鍵對應(yīng)的keyCode
② 字符編碼
發(fā)生keypress事件時,event對象的charCode屬性會包含一個值,這個值就是按下的那個鍵所代表字符的ASCII編碼,并且,同一個字母的大小寫對應(yīng)的字符編碼也是不一樣的。
要注意的是,keypress事件只有在按下字符鍵時才會觸發(fā),并不是所有的按鍵,像Ctrl, Alt之類的就不會觸發(fā)該事件。
3. 熱身環(huán)節(jié)
① 獲取玩家的指令
我們先看看怎么獲取到玩家的操控指令,這里我們寫一段代碼:
window.onkeydown = function(eve){ alert("所按鍵對應(yīng)的鍵碼是: " + eve.keyCode); };
大家運行一下就可以知道鍵盤上每一個按鍵所對應(yīng)的鍵碼是多少了,然后取自己需要的按鍵繼續(xù)編寫程序。這里需要的是方向鍵的上下左右,當然這個在網(wǎng)上可以查到,也非常方便。
我們運行了之后會發(fā)現(xiàn),上下左右對應(yīng)的鍵碼分別是38, 40, 37, 39??紤]到有些玩家習(xí)慣于使用W A S D來操作,那我們把這幾個鍵也做進去,這幾個鍵對應(yīng)的鍵碼分別是87, 65, 83, 68。
OK,知道了上面這些東西之后我們就可以寫出下面這段代碼了:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式