繁体   English   中英

使用LibGDX按空格键时如何射击子弹?

[英]How to shoot bullets when space bar is pressed using LibGDX?

我做了如下:

...
if (Gdx.input.isKeyPressed(Keys.SPACE)) {
   shoot();
}
...

问题是,如果我一直按下SPACE,就会创建许多子弹。 我想要的是,只有当我按下SPACE时弹出子弹,但是当我按下键时弹出。

Libgdx InputProcessor接口具有接收keyDownkeyUp事件的方法。 这可能是你应该使用的。

查看库的文档,它似乎没有暴露任何其他方式获得按键(特别是按键/释放)。 在这种情况下,您可以使用在帧之间保留的spaceAlreadyPressed变量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();
}
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM