自從威少砍下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í)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式