こんにちは、akiです。
この記事ではカスタムイベントの使い方について説明します。
カスタムイベントとは、ユーザが自由に処理を記述できるイベントのことです。イベントを発行するディスパッチャと、発行されたイベントを受け取るイベントリスナーの2つから構成されます。
カスタムイベントを利用することで、メインループ中にif文やフラグを乱用すること無く、スッキリとしたコードを描くことが可能になります。可読性が上がれば人間のミスも減るということで、使わない手は無いです。
■環境
XCode:8.2.1
Cocos2d-x:3.9
カスタムイベントリスナーを追加する
this->getEventDispatcher()->addCustomEventListener("custom_event_name" [this](EventCustom* event){ CCLOG("*** costom event exec ***"); });
上記の例では“coutom_event_name”というカスタムイベントリスナーを追加しています。イベントリスナーを追加する場所は、タップイベントの取得などと同じでシーンを初期化する箇所に記述すれば良いです。
イベントを発行する(イベントのディスパッチ)
auto event = EventCustom("custom_event_name"); Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
カスタムイベントリスナーを追加したときに使用したイベントリスナー名を設定してイベントを発行します。この記述が実行された時点でカスタムイベントリスナーに記述した処理が実行されます。
実践的なカスタムイベントの使い方についてはこちらの記事(内部リンク)を参照して下さい。
以上です。