再次,新手需要你的建議,親切的陌生人。多個階段 - 按鈕不反應?
我有一些問題,即使用Google搜索後,也無法解決。
我在我的遊戲2個階段,在每一個持有按鈕的表格: 第一個存儲表與遊戲內的按鈕:向上/向下移動並暫停 第二個存儲表示暫停菜單表。
如果「暫停」點擊(遊戲暫停和)我想提請現在可以處理輸入的第二階段。
我初始化2個階段:
public void create(){
...
mainStage = new Stage(viewport,batch);
menuStage = new Stage(viewport,batch);
Gdx.input.setInputProcessor(mainStage);
...
暫停鍵得到了設置(ENUM)狀態PAUSE (同樣在暫停菜單中的「恢復」按鈕的監聽器,用來設置狀態RUNNING)
pause.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
thisState = STATE.PAUSE;
Gdx.input.setInputProzessor(menuStage);
}
});
然後在渲染方法
switch (gameState) {
case RUNNING:
deltaTime = Gdx.graphics.getDeltaTime();
stateTime += deltaTime; // for the animations
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
update(deltaTime);
batch.begin();
... draws the characters
batch.end();
mainStage.act(deltaTime);
mainStage.draw();
break;
case PAUSE:
Gdx.gl.glClearColor(0, 0, 0, 0.6f); I want the background to become slightly darker.
Gdx.app.log("Game State","Game is PAUSED");
menuStage.act(deltaTime);
menuStage.draw();
}
如果I S撻mainStage按鈕出現,但不可點擊。 我注意到,如果我點擊屏幕中間,遊戲就會停止。然而,「暫停」按鈕的聽衆甚至沒有反應,因爲控制檯上沒有通知,遊戲暫停,也沒有點擊按鈕。
我的開始屏幕只使用一個舞臺,並完全使用相同的設置。
我覺得什麼resons可能是:
- 我用setInputProcessor虛假
- 我用視窗錯誤(及調整)
- 我必須以某種方式讓第一階段消失繪製新階段之前
幫助表示讚賞了很多!謝謝。
SRY我的英文不好 ..和我格式化(這是我的第一篇文章在這裏)
我不明白是什麼原因導致你的舞臺從得到正確的輸入,但我確實看到了一些錯誤,你可以固定。可能讓你更接近。首先,你在暫停狀態下不清除顏色緩衝位。其次,將清晰的顏色設置爲較低的alpha值不會使其變暗 - 沒有比黑色更暗的。第三,你只是在遊戲模式下更新deltaTime和stateTime,所以這些值將在暫停模式下被錯誤的值「卡住」。 – Tenfour04
嘗試ClickListener – eldo
@ Tenfour04 thx很多,即使它沒有解決我的問題,至少一些其他潛在的錯誤已被消除...如果它不打擾你很多,你可以建議一個更好的方式來創建一個暫停窗口遊戲? –