Irrlicht Gui не будет нажимать кнопки - PullRequest
2 голосов
/ 08 января 2012

Я делаю свою первую игру в Irrlicht (C ++), RTS с управлением мышью

и когда вы выбираете плитку (нажав на нее), она загорается, и на экране появляется какая-то кнопка графического интерфейса (не в окне графического интерфейса, заметьте, мне это нравится):

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

Однако, поскольку я переключился на управление мышью, кнопки не регистрируют мои щелчки мышью. Щелчок проходит прямо через кнопку и выбирает плитку позади:

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

Есть ли способ, которым я могу сказать "Кнопки имеют наивысший приоритет для кликов"? Я использую MyEventReceiver, с которым я не разобрался, чтобы принимать щелчки мыши и все такое.

Спасибо большое: D

Ответы [ 2 ]

2 голосов
/ 14 января 2012

Если у кого-то еще есть такая же проблема, я расскажу вам, как я ее решил:)

Пройдите через MyEventReceiver.h и избавьтесь от всех «return true;» в разделе мыши.

Не спрашивайте меня, почему, но это работает, и, похоже, не имеет побочных эффектов. Убедитесь, что вы оставили «return false»; в конце раздела есть.

0 голосов
/ 08 января 2012

Ваш приемник событий срабатывает до того, как 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
...