Für super Anfänger. Sie können es auch lange gedrückt halten.
Die Funktion keyPressed / keyReleased bestimmt, ob jede Taste gedrückt oder losgelassen wird.
//Speichert den Eingabestatus jeder Taste
boolean right, left, down, up;
void keyPressed() {
if (keyCode == RIGHT) right = true;
if (keyCode == LEFT) left = true;
if (keyCode == DOWN) down = true;
if (keyCode == UP) up = true;
}
void keyReleased() {
if (keyCode == RIGHT) right = false;
if (keyCode == LEFT) left = false;
if (keyCode == DOWN) down = false;
if (keyCode == UP) up = false;
}
Damit kann eine gleichzeitige Druck- / Langdruckbearbeitung durchgeführt werden. später
python
if (right) {
/*Verarbeitung bei gedrückter rechter Taste*/
}
if (left) {
/*Verarbeitung bei gedrückter linker Taste*/
}
if (down) {
/*Verarbeitung beim Drücken der Abwärtstaste*/
}
if (up) {
/*Verarbeitung beim Drücken der Aufwärts-Taste*/
}
Sie können die Verarbeitung für jeden Schlüssel wie folgt aufteilen.
Dies ist jedoch nicht sehr klug. Lassen Sie uns den Eingabestatus gemeinsam mit HashMap verwalten.
python
// keyCode(int type)Und sein Eingangszustand(Boolescher Typ)Geschäft
HashMap<Integer, Boolean> key = new HashMap<Integer, Boolean>();
void keyPressed() {
key.put(keyCode, true);
}
void keyReleased() {
key.put(keyCode, false);
}
Erstellen Sie außerdem eine KeyState-Klasse, die den Eingabestatus verwaltet.
KeyState.pde
static class KeyState {
static HashMap<Integer, Boolean> key;
//Initialisierung des Eingangszustands
static void initialize() {
key = new HashMap<Integer, Boolean>();
key.put(RIGHT, false);
key.put(LEFT, false);
key.put(UP, false);
key.put(DOWN, false);
}
//Empfängt und aktualisiert keyCode und seinen Eingabestatus
static void putState(int code, boolean state) {
key.put(code, state);
}
//Empfängt keyCode und gibt seinen Eingabestatus zurück
static boolean getState(int code) {
return key.get(code);
}
}
Wenn Sie den Eingabestatus erhalten, sieht es so aus
main.pde
void setup() {
KeyState.initialize();
}
void draw() {
if (keyState.getState(RIGHT)) {
/*Verarbeitung bei gedrückter rechter Taste*/
}
if (keyState.getState(LEFT)) {
/*Verarbeitung bei gedrückter linker Taste*/
}
if (keyState.getState(DOWN)) {
/*Verarbeitung beim Drücken der Abwärtstaste*/
}
if (keyState.getState(UP)) {
/*Verarbeitung beim Drücken der Aufwärts-Taste*/
}
}
void keyPressed() {
KeyState.putState(keyCode, true);
}
void keyReleased() {
KeyState.putState(keyCode, false);
}
Danke für Ihre Unterstützung.
Die Richtungstaste ist ** keyCode (int type) **, aber Tab und Enter werden in ** key (char type) ** gespeichert, sodass ein anderes Gerät erforderlich ist.
Recommended Posts