我正在編寫正在處理的遊戲,但我遇到以下問題: 當我按左箭頭鍵時,字符向左移動。但是如果我按住鍵,然後按下左箭頭鍵時按下跳躍(向上箭頭鍵),當角色到達地面時停止移動。 發生這種情況是因爲某種程度上,處理在您按下另一個按鈕後會停止獲取按下的按鍵。 無論如何要解決這個問題?正在處理 - 正在處理鍵
回答
有keyTyped(),但我從來沒有得到它的工作,如參考文獻中所描述...您可以嘗試一下... keyPressed()在按下按鍵時被調用一次,但不會在它的時間仍然按下。這樣做的一個常用方法是使用布爾值從兩個調用的keyPressed()和調用keyReleased()來跟蹤你的需要,如規定:
[EDIT2] 代碼適合:
boolean[]keys = new boolean[5];
final int A = 0;
final int W = 1;
final int S = 2;
final int D = 3;
final int R = 4;
char keyP;
PVector p;
void setup(){
size(400,400);
p = new PVector (width/2, height/2);
}
void draw(){
background(255);
ellipse (p.x, p.y, 10, 10);
if(keys[A]){
p.x--;
}
if(keys[W]){
p.y--;
}
if(keys[S]){
p.x++;
}
if(keys[D]){
p.y++;
}
if(keys[R]){
println("what should I do?");
}
}
void keyPressed() {
keyP = key;
switch(keyP) {
case 'A':
case 'a':
keys[A] = true;
//println("a pressionado");
break;
case 'W':
case 'w':
keys[W] = true;
//println("w pressionado");
break;
case 'S':
case 's':
keys[S] = true;
//println("s pressionado");
break;
case 'D':
case 'd':
keys[D] = true;
//println("d pressionado");
break;
case 'R':
case 'r':
keys[R] = true;
//println("r pressionado");
break;
}
}
void keyReleased(){
keyP = key;
switch(keyP){
case 'A':
case 'a':
keys[A] = false;
//println("a solto");
break;
case 'W':
case 'w':
keys[W] = false;
//println("w solto");
break;
case 'S':
case 's':
keys[S] = false;
//println("s solto");
break;
case 'D':
case 'd':
keys[D] = false;
//println("d solto");
break;
case 'R':
case 'r':
keys[R] = false;
//println("r solto");
break;
}
}
嗨:) 首先感謝你的答案,但它沒有奏效,我試圖使用這個,但取代如果案件。並沒有什麼改變:/ 繼承人代碼: http://pastebin.com/5dtXTQwQ –
嗨,代碼沒有編譯,它沒有競爭,但我更新了上面的代碼與你的改編,它在這裏工作...也許我沒有得到什麼是你的問題... –
它工作完美:)。是的,我的代碼不完整,p。 真正的問題是: 當我執行操作後,我正在寫Key [NameKey] = false,所以我就像是「double falsifying」,因爲KeyRelesead正在爲我做。 謝謝:D –
- 1. 正在處理
- 2. GPS正在處理
- 3. 「正在處理」還是「已處理」?
- 4. Nginx正在處理圖片
- 5. 正在處理3.0 PVector.get()
- 6. 正在處理WPF RoutedEvents ...?
- 7. Knight's Tour GUI正在處理
- 8. .text()立即正在處理
- 9. Silverlight「正在處理...」指標
- 10. 加工正在處理的正弦波
- 11. 託管在Windows上處理網頁正在處理中
- 12. 正確處理庫
- 13. 正確處理StaleObjectStateException
- 14. 正確處理DbConnection
- 15. 處理SSL_shutdown正確
- 16. 正確處理DomainOperationException
- 17. 正確處理didReceiveMemoryWarning
- 18. 正確處理WebExceptions?
- 19. 註釋處理器 - 如何獲得它正在處理的類
- 20. 處理程序處理消息時UI正在中斷
- 21. 當處理程序正在處理時,網站沒有響應
- 22. jQuery/AJAX正在處理IIS5.1但不處理IIS6
- 23. 在處理char數組時處理NULL char的正確方法
- 24. jQuery Datatables卡在「正在處理」
- 25. 在asp.net中處理外鍵
- 26. 在Python中處理多鍵?
- 27. 在DataGridView中處理Enter鍵
- 28. 處理按鍵在GTK +(gtkD)
- 29. 正確的錯誤處理在ASP.NET MVC2
- 30. 如何正確處理AVAudioPlayer在objective-c
語言?......平臺?......等等...... –
他說,處理就是語言。 –