我正在Java中做蛇游戏,需要使用用户击键来控制移动的方向。这可能通过switch
声明吗?我最初使用Scanner s = new Scanner(System.in)
来允许用户输入'u','d'等来移动蛇,但我想用键盘箭头代替。Java开关与用户输入击键
这是我现在所拥有的:
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;
}
}
我要插入这样的事情,但不知道如何:
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);
}
});
什么是做到这一点的最好办法?
Swing是事件驱动的,这意味着你将无法使用'System.in'得到输入,这不是它应该使用[Key Bindings](https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) – MadProgrammer