【发布时间】:2014-10-13 12:04:35
【问题描述】:
我正在使用 LibGdx 开发一个 java 游戏,我需要你的帮助。
说明:我在使用箭头键时遇到了一个问题。让我先解释一下我的代码是如何工作的。所以在我的更新方法中,我检查是否按下了键。如果他们是我处理他们。问题是我的代码在另一个之后检查。因此,它检查的第一个箭头键优先于所有其他箭头键,因为如果按下它,它将首先被调用。例如:
public static void updateControls(){
if(Gdx.input.isKeyPressed(Input.Keys.UP){
//Make player move up...
}
if(Gdx.input.isKeyPressed(Input.Keys.DOWN){
//Make player move down...
}
if(Gdx.input.isKeyPressed(Input.Keys.LEFT){
//Make player move left...
}
if(Gdx.input.isKeyPressed(Input.Keys.RIGHT){
//Make player move right...
}
}
顺便说一句,我的游戏是瓷砖基地。当玩家完成移动 1 格时,它会再次检查箭头键输入以查看下一步需要移动的方向。
导致问题的原因:每当玩家向左、向右或向下移动并按住其中一个按钮并决定向上按时。向上将优先,即使玩家最初向下移动,玩家也会开始向上移动。
我试着用我最大的能力来解释这一点,因为如果不亲自尝试就很难理解。如果您需要更多解释或指向我的游戏的链接来自己尝试故障,请随时发表评论并询问这些内容。谢谢!
【问题讨论】:
-
好的,那么您真正想要发生什么?您是否希望玩家在按下另一个键时继续朝同一方向前进?
-
是的。但我已经修好了,但谢谢!在我发布这个之后,我想出了一个解决方案。
-
解决方案:我添加了一个记录最后一个方向的int。然后每当按下一个键时,它会检查最后一个方向的键是否仍然被按下。如果是,它将再次运行该密钥的代码。如果不是,那么它将继续进行而不会中断。
-
@vedi0boy 如果您找到了满意的解决方案,请随时回答您自己的问题并将其标记为已接受的答案。
标签: java libgdx arrow-keys