我做到了,如下所示:如何在使用LibGDX按下空格鍵時拍攝子彈?
...
if (Gdx.input.isKeyPressed(Keys.SPACE)) {
shoot();
}
...
的問題是,如果我繼續按SPACE多少發子彈被創建。我想要的是,只有當我按下SPACE鍵時,子彈纔會被拍攝,而當按下鍵時不會。
我做到了,如下所示:如何在使用LibGDX按下空格鍵時拍攝子彈?
...
if (Gdx.input.isKeyPressed(Keys.SPACE)) {
shoot();
}
...
的問題是,如果我繼續按SPACE多少發子彈被創建。我想要的是,只有當我按下SPACE鍵時,子彈纔會被拍攝,而當按下鍵時不會。
看了一下庫的文檔,它似乎沒有公開任何其他方式獲取按鍵(特別是按下鍵/釋放)。在這種情況下,您可以使用spaceAlreadyPressed
變量自行保留更改,該變量在幀之間保持不變。
...
boolean spaceIsPressed = Gdx.input.isKeyPressed(Keys.SPACE);
if (spaceIsPressed && !spaceAlreadyPressed) {
shoot();
}
...
spaceAlreadyPressed = spaceIsPressed;
這可能是更安全的情況下,使用一個可變spaceIsPressed
意外的輸入狀態變化。
另外,如果你想讓它更短,您可以使用邏輯的法律,以減少對以下內容,其中canShoot
也仍然存在幀之間並具有false
的初始值。
Libgdx InputProcessor
接口有方法來接收keyDown
和keyUp
事件。這可能是你應該使用的。
是的,這樣好多了。 – Zong