我正在开发一个包含大量代码的游戏。可以在此处找到未完成的游戏版本:http://rainisfalling.co.za/sheep-jump-test/
有两个关键听众。一个人听大空跳的SPACEBAR,另一个听小型跳跃的CTRL。我遇到的问题是,当两个按钮精确地同时按下时,两个跳跃动作都会发生,从而导致超大跳跃。 (两个跳高的组合。)
以下是我的代码的简化版本:
addEventListener(KeyboardEvent.KEY_DOWN, bigJump);
function bigJump(e:KeyboardEvent){
//check to see that keycode = SPACEBAR
//code to do the actual jump
//also remove the event listeners for the jumps while in the air
}
addEventListener(KeyboardEvent.KEY_DOWN, smallJump);
function smallJump(e:KeyboardEvent){
//check to see that keycode = CTRL
//code to do the actual jump
//also remove the event listeners for the jumps while in the air
}
答案 0 :(得分:3)
在阅读之后,这可能看起来非常明显,但只需在函数do中添加一个侦听器 if(CTRL)smallJump 如果(空格键)bigJump
这种方式只发生一种情况......也考虑将其留在游戏中并将其整合到游戏中,我喜欢超级跳跃的想法:)。
答案 1 :(得分:2)
将跳转组合成一个处理程序:
addEventListener(KeyboardEvent.KEY_DOWN, jump);
function jump(e:KeyboardEvent){
switch( e.keyCode ){
case 32: //<Space>
//Big jump code
break;
case 17: //<Ctrl>
//Small jump code
break;
}
}