KeyListener的多键检测(java)

如何实现KeyListener以便我可以创建一个双人系统,其中一个人使用’。’ 和’/’来控制一个角色,而另一个人可以使用箭头键而不会相互打断? 我现在的方式是,当一个人按住箭头键时,他们的角色会移动,但是当你使用其他玩家的控制时,第一个人的角色会停止。

创建一个HashMap ,用于标记当前按下/按下的键。

然后在游戏循环中,您可以根据在此地图中是否按下按键来移动对象。

例如:

 if (keyMap.get(VK_COLON) == Boolean.TRUE) //True indicates pressed playerAXPos+= 10; 

从您正在收听keyPressed事件的事物的声音。 基本上,您需要维护有关当前“关闭”键的有状态信息,并且仅在keyReleased事件发生时停止相应的操作。

这将需要有两个单独的行动作处理程序,一个用于按下键时,一个用于释放键。

您可能需要做的其他事情之一就是维护某些活动密钥的缓存…当我输入时,Ethan刚刚提到了这一点:P