Processing 处理过程中非箭头键的连续按键功能

Processing 处理过程中非箭头键的连续按键功能,processing,Processing,请先按(按住)箭头键,然后按非箭头键来测试以下代码。在Mac中,至少你会看到箭头键不断地应用它们的功能,而其他键则没有。是否有人知道如何使其他键在处理过程中持续应用(即不通过改变OSX的功能) void setup(){} void draw(){} 按下void键(){ 如果(keyCode>=36&&keyCode那么这是一种方法。但更像是一种黑客行为……因为它不处理系统的密钥重复处理。但有效:) boolean表示; void setup(){} 作废提款(){ 如果(显示) printl

请先按(按住)箭头键,然后按非箭头键来测试以下代码。在Mac中,至少你会看到箭头键不断地应用它们的功能,而其他键则没有。是否有人知道如何使其他键在处理过程中持续应用(即不通过改变OSX的功能)

void setup(){}
void draw(){}
按下void键(){

如果(keyCode>=36&&keyCode那么这是一种方法。但更像是一种黑客行为……因为它不处理系统的密钥重复处理。但有效:)

boolean表示;
void setup(){}
作废提款(){
如果(显示)
println(帧数+非箭头键激活:“+键);
}
按下void键(){

如果(keyCode>=36&&keyCode,则该示例是专门为尝试解决此问题的人设计的:)谢谢@v.k。我希望避免这种方法需要多个键指令的布尔值激增,但这似乎是最简单的解决方法。实际上,您只需要一个布尔值来跟踪是否按下……或者可能我不理解您……:)我理解,除非您希望所有活动键动作都被禁用当任何一个键被释放时,您需要添加额外的逻辑约束。在引用中有一个keyTyped()声称知道键重复,但在这里不起作用…我在mac中。但是您可以尝试一下。。。
void setup(){}
void draw(){}

void keyPressed() {
  if (keyCode >= 36 && keyCode <= 40) { // keycodes for arrow keys
    println(frameCount + " arrow key activated: " + key);
  } 
  else {
    println(frameCount + " non-arrow key activated: " + key);
  }
}
boolean isPressed;
void setup(){}
void draw(){
  if (isPressed)
  println(frameCount + " non-arrow key activated: " + key);
}


void keyPressed() {
  if (keyCode >= 36 && keyCode <= 40) { // keycodes for arrow keys
    println(frameCount + " arrow key activated: " + key);
  } 
  else {
    isPressed = true;
  }
}

void keyReleased(){
  isPressed = false;
}