自从威少砍下45+11+11的大号三双之后,网上出现了各种各样的神级段子,有一条是这样的:

  威少:Hey,哥们,最近过得咋样!

  浓眉:对方开启了好友验证,请先添加对方为好友

  威少:。。。。。。

  JRS:2333333

  看到了一条比赛当天的数据统计:威少45+11+11,杜少32+8+3,伊巴卡19+11+2,雷吉杰克逊17+3+6,哈登16+6+16,雷霆管理层真应该改名雷锋管理层了,现在对雷霆管理层的每日一轮都是JRS们的常态了。

  好了,不扯,接着上一篇博客(H5坦克大战之画出坦克http://www.cnblogs.com/zhouhuan/p/H5_tankgame.html),这一篇来看看怎么响应玩家的操作让坦克进行相应的移动。

 

  1. 了解keydown事件

  keydown这一键盘事件的触发条件为按下键盘上的任意键,如果按住不放,则会重发触发。

  示例:

window.onkeydown = function(){
    alert("Merry Christmas!");
};

  此时载入页面之后,无论按下哪个键,都会弹出“Merry Christmas!”的弹窗。

 

  2. 了解键码和字符编码

 

  ① 键码

  在发生keydown和keyup事件时,event对象的keyCode(键码)属性会包含一个代码,与键盘上一个特定的键对应。对于数字字母字符集,keyCode属性的值与ASCII码中对应小写字母或数字的编码相同。字母中的大小写不影响。

window.onkeydown = function(eve){
    alert(eve.keyCode);
};

  此时按键盘上的任意键,便可得到所按键对应的keyCode

  

  ② 字符编码

  发生keypress事件时,event对象的charCode属性会包含一个值,这个值就是按下的那个键所代表字符的ASCII编码,并且,同一个字母的大小写对应的字符编码也是不一样的。

  要注意的是,keypress事件只有在按下字符键时才会触发,并不是所有的按键,像Ctrl, Alt之类的就不会触发该事件。

 

  3. 热身环节

 

  ① 获取玩家的指令

  我们先看看怎么获取到玩家的操控指令,这里我们写一段代码:

window.onkeydown = function(eve){
    alert("所按键对应的键码是: " + eve.keyCode);
};

  大家运行一下就可以知道键盘上每一个按键所对应的键码是多少了,然后取自己需要的按键继续编写程序。这里需要的是方向键的上下左右,当然这个在网上可以查到,也非常方便。

  我们运行了之后会发现,上下左右对应的键码分别是38, 40, 37, 39。考虑到有些玩家习惯于使用W A S D来操作,那我们把这几个键也做进去,这几个键对应的键码分别是87, 65, 83, 68。

  OK,知道了上面这些东西之后我们就可以写出下面这段代码了:

网友评论