我有一个2人游戏,一个玩家使用WASD,一个使用箭头键。我无法弄清楚如何一次允许多个键。这是我的代码:
List keyArray = new ArrayList();
// Red guy input.
if (e.getKeyCode() == 37) { // left key
new LoadRedCharacter("leftrightfootred.gif");
int x = Frame.redCharacterLabel.getX();
int y = Frame.redCharacterLabel.getY();
if (x < 0) {
Frame.redHealthLabel.setLocation(x - 13, y - 15);
Frame.redCharacterLabel.setLocation(x + 1, y);
ResetEntities.redCharacterObj.setLocation(x + 1, y);
} else {
Frame.redHealthLabel.setLocation(x - 13, y - 15);
Frame.redCharacterLabel.setLocation(x - 2, y);
ResetEntities.redCharacterObj.setLocation(x - 2, y);
}
keyArray.add(37);
System.out.println("array" + keyArray);
Frame.frame.repaint();
checkHitBox();
}
我还有蓝色字符左移动的代码。然后我有这个:
// Multi key input
if (keyArray.contains(37) && keyArray.contains(65)) {
System.out.print("array contains 37 and 65");
}
为了测试它。但它不起作用..
答案 0 :(得分:0)
您可以采用多线程方法。有一个线程只关心红色键,另一个只关心蓝色。它们各自独立行动,如果在共享变量上使用同步,则不应互相干扰。