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 に答える