![](/img/trans.png)
[英]AS3 Keyboard Controlled Character - Animation problems with multiple key presses
[英]AS3: Multiple options in one key and preventing multiple key presses
我的AS3代碼中有一個“暫停功能”,問題是我無法弄清楚給字母“ P”提供暫停和取消暫停的能力所必需的邏輯,同時將按下次數限制為一個時間。 到目前為止,我的代碼(可以,是的,但是沒有“一次按一下”的限制)。
public function PauseDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.P)
{
pause = true;
trace ("apreté pausa");
pausa();
}
}
public function pausa():void
{
trace ("pausa");
if (pause == true && paused == false)
{
paused = true;
backgroundLvL1.removeEventListener(Event.ENTER_FRAME,update);
}
else if(pause == true && paused == true)
{
paused = false;
backgroundLvL1.addEventListener(Event.ENTER_FRAME,update);
}
}
您的“ PauseDown”函數可能應該調用其他名稱,因為只要按下ANY鍵,就會調用該函數。 像“ keyPressed”之類的東西可能更具描述性。
如果您只想將一個鍵確認為最近按下的鍵,則可以在“ keyPressed”功能的event.keyCode中設置一個變量(例如_currentKeyCode)。 然后,在游戲循環功能中,您可以檢查_currentKeyCode的值並使游戲做出相應的響應。
在“ keyPressed”功能中,您還可以包含測試以查看是否已按下“ P”。
請注意,您還應該具有在KeyBoardEvent.KEY_UP事件上觸發的“ keyReleased”功能。 這可以檢查_currentKeyCode == event.keyCode,如果是,則將_currentKeyCode設置為-1。 然后,在游戲循環中,-1表示沒有按鍵。
最后,一點無關緊要的事情是:在“ pausa”函數中,您無需檢查“ pause == true”是否成立,因為只有在pause == true時才調用pausa函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.