gpt4 book ai didi

listener - 处理 keyPressed()

转载 作者:行者123 更新时间:2023-12-01 10:08:58 26 4
gpt4 key购买 nike

基本上我必须为一个项目使用 Processing(并非出于选择)并且遇到了关于一次按下多个键的问题。在 keyPressed() 函数中,我有多个条件,每个都将一个键映射到一个 Action 。这一切都很好,但假设我想一次按下多个键?

有什么建议吗?

谢谢。

最佳答案

创建一个数组。为您正在检查的每个键分配一个数值,然后在按下或释放键时打开或关闭数组中的相应值。然后在 draw() 中检查数组的值,以查看在任何给定时刻哪些是打开的,哪些是关闭的。

boolean[] keys = new boolean[4];
final int A = 0;
final int D = 1;
final int W = 2;
final int S = 3;

void setup() {

}

void draw() {

if (keys[D]) {
// do something;
}
if (keys[A]) {
// do something;
}
if (keys[W]) {
// do something;
}
if (keys[S]) {
// do something;
}

} // end of draw()


void keyPressed() {
int mybutton = key; // the ascii value of the key that was pushed

switch (mybutton) {
case 101:
keys[D] = true;
break;
case 97:
keys[A] = true;
break;
case 44:
keys[W] = true;
break;
case 111:
keys[S] = true;
break;
} // end switch

} // end keyPressed

void keyReleased() {
switch (mybutton) {
case 101:
keys[D] = false;
break;
case 97:
keys[A] = false;
break;
case 44:
keys[W] = false;
break;
case 111:
keys[S] = false;
break;
} // end switch

} // end keyReleased

关于listener - 处理 keyPressed(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com