2012-01-08 68 views
2

我做我的Irrlicht的(C++),一個RTS第一遊戲鼠標控制Irrlicht的桂鼠標不會點擊按鈕

,當你選擇一個區域(通過點擊它),它亮起來,一些GUI按鈕出現在屏幕上(不是在一個GUI窗口提醒你,我喜歡這樣)上:

http://i1139.photobucket.com/albums/n549/Adam_Halley-Prinable/Untitled2.png

然而,由於我切換到鼠標控制,按鈕不會註冊我的鼠標點擊。點擊進入直通按鈕,選擇瓷磚後面來代替:

http://i1139.photobucket.com/albums/n549/Adam_Halley-Prinable/Untitled3.png

有沒有一種方法,我可以說「按鈕獲得最優先的點擊」? 我正在使用MyEventReceiver,我搞砸了接受鼠標點擊和。

多謝:d

的GUI獲得訪問該活動

回答

2

如果其他人有同樣的問題,我會告訴你我是如何解決它:)

通過MyEventReceiver.h去,擺脫所有的「返回true;」的小鼠部分。

不要問我爲什麼,但它有效,似乎沒有副作用。確保你離開「返回假」;在該部分的結尾處。

0

你的事件接收器觸發之前,如果你想將它傳遞給GUI,那麼你可以通過手動將其發佈到GUIEnvironment在事件做到這一點接收器。

if (guienv->postEventFromUser(event)) 
    return true; // abort because the gui wanted it 

// .. pick nodes 

// possibly post event to scene manager 

return true; // remember to return true so gui/smgr don't get the event again 
+0

這聽起來像它應該工作,但我只是有一點小範圍的麻煩。事件接收者不知道guienv是什麼......嗯..也許我可以在那裏找到guienv的定義... – Magicaxis 2012-01-09 03:32:39

+0

這幾乎奏效,但guienv只是沒有在範圍內。不過謝謝 – Magicaxis 2012-01-15 00:40:15