簡體   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