Ich mache ein Snake-Spiel in Java und muss Benutzer Tastenanschläge verwenden, um die Richtung der Bewegung zu steuern. Ist dies durch eine switch
Erklärung möglich? Ich benutzte ursprünglich eine Scanner s = new Scanner(System.in)
, um dem Benutzer zu erlauben, 'u', 'd', etc. einzugeben, um die Schlange zu bewegen, aber ich würde stattdessen lieber die Tastaturpfeile verwenden. HierJava Switch mit Benutzereingabe Tastenanschläge
ist, was ich habe jetzt:
public void controlSnake(){
Scanner s = new Scanner(System.in);
String inputString = s.next();
switch (inputString) {
case "u":
case "U":
snake.changeDirection(Point.NORTH);
break;
case "d":
case "D":
snake.changeDirection(Point.SOUTH);
break;
case "r":
case "R":
snake.changeDirection(Point.EAST);
break;
case "l":
case "L":
snake.changeDirection(Point.WEST);
break;
}
}
Ich wollte so etwas legen, aber nicht sicher, wie man:
map1.put(KeyStroke.getKeyStroke("LEFT"), "moveLeft");
getActionMap().put("moveLeft", new AbstractAction() {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
snake.changeDirection(Point.WEST);
}
});
Was wäre der beste Weg, dies zu tun ?
Swing Event Driven, das heißt, dass Sie nicht in der Lage sein System.in' zu verwenden 'Eingang zu bekommen, das ist nicht wie es wrks, stattdessen sollten Sie [Key Bindings] verwenden (https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) – MadProgrammer