【发布时间】:2026-01-25 10:40:01
【问题描述】:
我目前正在为 Android 设备制作 libGDX 游戏。我想要一个在调用 touchDown 时调用函数的方法,而不是在单击按钮时调用函数。这是因为我正在为炮塔设置目标,并且在单击按钮时它不应旋转。
我现在的代码是
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if (state != STATE.GAMEOVERLOST && state != STATE.PAUSED
&& state != STATE.EXITMENU && !slowButton.isOver()
&& !pauseButton.isPressed())
turret.setTargetAngle(screenX, screenY);
return true;
}
这会覆盖我的类实现的 InputProcessor 类中的函数。
此代码有效:
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
if (state != STATE.GAMEOVERLOST && state != STATE.PAUSED
&& state != STATE.EXITMENU && !slowButton.isPressed()
&& !pauseButton.isPressed())
turret.setTargetAngle(screenX, screenY);
return true;
}
touchDragged 有效但 touchDown 的事实并不表示该按钮直到第一个实例之后才被标记为“按下”。
我也尝试过使用 Button.isOver() 而不是 Button.isPressed() 但这仍然无法按预期工作。
有人有什么建议吗?
【问题讨论】:
标签: java android button touch libgdx