2012-03-28 58 views
0

我正在開發一個具有大量代碼的遊戲。未完成的遊戲版本可以在這裏找到:http://rainisfalling.co.za/sheep-jump-test/AS3 - 避免同時按下兩個按鈕

有兩個關鍵聽衆。一個聽大空間的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 
} 

回答

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; 
     } 
} 
+0

非常感謝!我真的應該想到這個......我的大腦被炸了。 – CptRayMar 2012-03-28 22:07:42

3

這可能會顯得你讀它之後,只是內添加一個監聽真的很明顯功能做 如果(CTRL)smallJump 否則,如果(空格鍵)bigJump

這樣,只有一個條件發生......也考慮把它留在和整合,在遊戲,我喜歡超躍想法:)。

+0

不能相信我沒想到的,-_-。哈哈,我會考慮的,也許每隔幾百分鐘,球員就會獲得一次超級跳投的機會。 :D – CptRayMar 2012-03-28 22:07:05