我正在编写正在处理的游戏,但我遇到以下问题: 当我按左箭头键时,字符向左移动。但是如果我按住键,然后按下左箭头键时按下跳跃(向上箭头键),当角色到达地面时停止移动。 发生这种情况是因为某种程度上,处理在您按下另一个按钮后会停止获取按下的按键。 无论如何要解决这个问题?正在处理 - 正在处理键
回答
有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
语言?......平台?......等等...... –
他说,处理就是语言。 –