【发布时间】:2015-08-02 12:47:26
【问题描述】:
我正在尝试使用 libgdx 框架制作游戏。 我正在使用 InputAdapter 来检查按键事件,一切正常,直到一次按下 3 个以上的键。 如果玩家在对角线移动并同时射击,我需要 3 个或超过 3 个关键事件。 由于某种原因,输入适配器仅注册前 2 个键事件,并且在其中一个键启动之前不会注册新的按下事件。
public class MyInputProcessor extends InputAdapter{
public boolean keyDown(int k)
{
switch (k)
{
case Keys.LEFT:
MyInput.setKey(MyInput.LEFT, true);
break;
case Keys.UP:
MyInput.setKey(MyInput.UP, true);
break;
case Keys.DOWN:
MyInput.setKey(MyInput.DOWN, true);
break;
case Keys.RIGHT:
MyInput.setKey(MyInput.RIGHT, true);
break;
case Keys.Z:
MyInput.setKey(MyInput.SHOOT, true);
break;
case Keys.ESCAPE:
MyInput.setKey(MyInput.ESC, true);
break;
}
return true;
}
public boolean keyUp(int k)
{
switch (k)
{
case Keys.LEFT:
MyInput.setKey(MyInput.LEFT, false);
break;
case Keys.UP:
MyInput.setKey(MyInput.UP, false);
break;
case Keys.DOWN:
MyInput.setKey(MyInput.DOWN, false);
break;
case Keys.RIGHT:
MyInput.setKey(MyInput.RIGHT, false);
break;
case Keys.Z:
MyInput.setKey(MyInput.SHOOT, false);
break;
case Keys.ESCAPE:
MyInput.setKey(MyInput.ESC, false);
break;
}
return true;
}
}
【问题讨论】:
-
这可能不是 libgdx 问题,而是您的键盘问题。大多数键盘无法识别超过 3 个键或仅特定键的组合键。
-
这似乎是原因!谢谢! :)
-
遇到同样问题的人,请尝试不同的密钥集。我在使用“Z”和箭头键时遇到了问题,但“X”工作正常!希望这会有所帮助。
标签: libgdx game-engine