我正在开发 2D 游戏,但我遇到了问题。我正在使用 Slick 2D。我可以检查用户按的是哪个键。但我不知道如何检查用户是否没有按任何内容。我想让游戏知道,如果我按向上键和向右键,它会朝那个方向移动。我已经对所有的多键输入进行了编程。
我如何判断 slick 2D:如果用户只按了一个键,那么应该会发生一些事情。
输入定义为:
Input input1 = gc.getInput();
在我的更新方法中。
你问的问题没有多大意义。
如果游戏容器记录了某个键被按下,它会触发侦听器
void keyPressed(int key, char c)
,您必须自己编写哪些键执行操作以及执行哪些操作。
如果游戏没有注册按键输入,则不会采取任何行动void keyPressed(int key, char c)
,您可以放心地假设没有按键被按下。
我的问题是,为什么你需要检查用户是否没有按下任何东西?游戏应该继续其正常状态或沿相同方向移动,直到按下另一个键或发生游戏违规。
快速而肮脏的解决方案是创建一种方法来检查您想知道的特定键目前没有被按下,例如箭头键:
private boolean areKeysPressed(Input input) {
if (input.isKeyDown(Input.KEY_LEFT) || input.isKeyDown(Input.KEY_RIGHT) || input.isKeyDown(Input.KEY_UP) || input.isKeyDown(Input.KEY_DOWN)) return true;
else return false;
}
然后在您的 update() 方法中,您可以执行以下操作:
if (!areKeysPressed(input1)) {
//code for what you want to happen if none of the arrow keys are pressed
}