我这样做如下:
...
if (Gdx.input.isKeyPressed(Keys.SPACE)) {
shoot();
}
...
问题是,如果我不断按空格键,则会创建许多项目符号。我想要的是,仅当我按下SPACE时才发射子弹,而在按下键时不发射子弹。
最佳答案
查看了该库的文档,它似乎没有公开任何其他获得按键的方法(尤其是按下/释放键)。在这种情况下,您可以使用在帧之间持续存在的spaceAlreadyPressed
变量来自己跟踪更改。
...
boolean spaceIsPressed = Gdx.input.isKeyPressed(Keys.SPACE);
if (spaceIsPressed && !spaceAlreadyPressed) {
shoot();
}
...
spaceAlreadyPressed = spaceIsPressed;
如果输入状态意外更改,则使用
spaceIsPressed
变量可能更安全。另外,如果您想使其更短,则可以使用逻辑法则来简化为以下形式:
canShoot
还在帧之间保持不变,并且初始值为false
。...
canShoot = !canShoot && Gdx.input.isKeyPressed(Keys.SPACE);
if (canShoot) {
shoot();
}
...
关于java - 使用LibGDX按下空格键时如何发射子弹?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17455873/