2

我正在用 Irrlicht (C++) 制作我的第一款游戏,这是一款带有鼠标控制的 RTS

当你选择一个瓷砖(通过点击它)它会亮起并且屏幕上会出现一些 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

4

2 回答 2

2

如果其他人有同样的问题,我会告诉你我是如何解决的:)

浏览 MyEventReceiver.h 并删除鼠标部分中的所有“return true;”。

不要问我为什么,但它有效,而且似乎没有副作用。确保你留下“return false;” 在该部分的末尾。

于 2012-01-14T07:07:41.153 回答
0

您的事件接收器在 GUI 访问事件之前触发,如果您想将其传递给 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
于 2012-01-08T16:18:47.980 回答