0

我正在开发一个包含大量代码的游戏。游戏的未完成版本可以在这里找到:http ://rainisfalling.co.za/sheep-jump-test/

有两个关键监听器。一个听空格键表示大跳跃,另一个听 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
}
4

2 回答 2

3

读完之后,这可能看起来很明显,但只需在函数中添加一个侦听器 do if(CTRL) smallJump else if(SPACEBAR) bigJump

这样只会发生一种情况……也可以考虑将其保留并集成到游戏中,我喜欢超级跳跃的想法:)。

于 2012-03-28T15:14:43.103 回答
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;
       }
}
于 2012-03-28T15:20:37.563 回答