我不知道Processing如何知道用户同时按下Ctrl
和某个字符。
仅限多个按钮。可能吗?
ex:(Ctrl+r
)。
答案 0 :(得分:1)
您必须先检查是否按下了Ctrl键。如果已按下,则将布尔值保存为true。下次按下按钮时,检查按钮是否是您想要的按钮(即' r')以及布尔值是否为真。如果两者都为真,那么Processing知道......
这是一个示范:
boolean isCtrlPressed = false;
boolean isRPressed = false;
void draw() {
background(0);
fill(255);
if (isCtrlPressed) background(255, 0, 0);
if (isRPressed) background(0, 255, 0);
if (isCtrlPressed && isRPressed) background(255, 255, 0);
}
void keyPressed() {
if (keyCode == CONTROL && isCtrlPressed == false) isCtrlPressed = true;
if (char(keyCode) == 'R') isRPressed = true;
}
void keyReleased() {
if (keyCode == CONTROL) isCtrlPressed = false;
if (char(keyCode) == 'R') isRPressed = false;
}
答案 1 :(得分:1)
我知道这是一个非常古老的提要,但是我有一些可以帮助所有人进行多次按键操作的内容。这是用于Processing的Python模式的,但是我敢肯定它可以以其他方式实现于其他模式。
import string
#string.printable is a pre-made string of all printable characters (you can make your own)
keys = {}
for c in string.printable:
#set each key to False in the keys dictionary
keys[c] = False
def keyPressed():
#If key is pressed, set key in keys to True
keys[key] = True
def keyReleased():
#If key is released, set key in keys to False
keys[key] = False
然后使用多个if语句,您可以检查字典中是否按下了键。
if keys['w'] == True:
#Do something
if keys['s'] == True:
#Do something
if keys['a'] == True:
#Do something
if keys['d'] == True:
#Do something
if keys[' '] == True:
#Do something
以此类推。 希望这会有所帮助!
答案 2 :(得分:0)
您还可以覆盖keyPressed(KeyEvent)方法并使用KeyEvent.isControlDown()方法:
void keyPressed(KeyEvent ke) {
println(ke.isControlDown());
}
void draw(){
//need draw() method for keyPressed() to work
}