我正在研究需要一些GUI在我的遊戲屏幕上方的遊戲。類似於Android中的FrameLayout
。Libgdx屏幕gui(用於暫停按鈕)
我有GameScreen,一切都在發生。 我現在想要的是添加一個「暫停」按鈕,高分信息等。
我試圖將Stage
對象與普通精靈繪圖相結合。 但是我在處理輸入時遇到了一些問題:如果用戶點擊了舞臺上的暫停按鈕,或者點擊了遊戲區域(我應該添加一些子彈),如何管理...
有人能爲我清楚嗎?
我正在研究需要一些GUI在我的遊戲屏幕上方的遊戲。類似於Android中的FrameLayout
。Libgdx屏幕gui(用於暫停按鈕)
我有GameScreen,一切都在發生。 我現在想要的是添加一個「暫停」按鈕,高分信息等。
我試圖將Stage
對象與普通精靈繪圖相結合。 但是我在處理輸入時遇到了一些問題:如果用戶點擊了舞臺上的暫停按鈕,或者點擊了遊戲區域(我應該添加一些子彈),如何管理...
有人能爲我清楚嗎?
您應該可以使用Stage
來管理您的用戶界面。爲了讓輸入正常工作,您需要添加一個InputMultiplexer
,這樣Stage
,然後您當前的輸入方案都將獲得輸入。
要設置它,你會做這樣的事情:(基於https://code.google.com/p/libgdx/wiki/InputEvent代碼代碼示例)
注意順序很重要
InputMultiplexer multiplexer = new InputMultiplexer();
multiplexer.addProcessor(stage);
multiplexer.addProcessor(gameScreenInputProcessor);
Gdx.input.setInputProcessor(multiplexer);
(我猜你」我們希望舞臺先獲取事件以查看UI是否被觸摸)。此外,來自輸入事件處理程序的布爾返回值對於多路複用器來說更爲重要,因爲「已處理」事件不會由多路複用器傳播。 Stage
內部的UI事件都有自己的「已處理」標誌(大多數情況下它是正確的,但存在一些細微差別)。
InputMultiplexer
的一種替代方法是創建一個「GameScreenActor」(Actor
的新子類),其中包含您插入全局Stage
的當前遊戲屏幕。不過,您必須將輸入處理移至scene2d方法。這可能不是你的正確選擇,但它是一個可行的選擇。
好吧,我雖然如此...我檢查了InputMultiplexer文檔...您的答案使sence。我會嘗試這個問題......希望它能起作用。 Tnx很多! :)我熟悉在Android中處理輸入,我希望它的作品類似:) – Veljko 2013-03-04 15:44:02