cocos2d-x スケジュール実行
2017/10/25
スケジュールの実行です。
遅延実行とも言うのでしょうか。
何秒後に処理を実行したい。という場合に使います。
とりあえずsplash画面からタイトル画面に遷移するときに使っています。
また、cocos2d-xでゲームを作る場合、
・まずは画面の初期化をinit関数内で行う。
・フレーム毎にupdate関数を呼び出す。
というのが基本になるかと思いますが、
init内でこのscheduleをフレーム毎にupdateを呼び出すように実行すれば良いと思います。
覚えておかなければならないのは、
何秒後に「関数を呼び出す」ということしかできない。
ということです。
●スケジュールの実行(フレーム毎に実行)
下記の場合はフレーム毎にgameLogic関数を呼び出す例です。
// スケジュールの実行(フレーム毎に実行) this->schedule(schedule_selector (HelloWorld::gameLogic)); //
●スケジュールの実行(秒単位)
下記の場合は、1.0秒後にgameLogic関数を呼び出す例です。
// スケジュールの実行(秒単位) this->schedule(schedule_selector (HelloWorld::gameLogic), 1.0f); //
●スケジュールの実行(秒、リピート回数、ディレイを指定)
下記の場合は、5.0秒後にスタートして、
1.0秒毎にgameLogic関数を3回繰り返す例です。
// スケジュールの実行(秒、リピート回数、ディレイを指定) this->schedule(schedule_selector (HelloWorld::gameLogic), 1.0f, 3, 5.0f); //
●スケジュールの実行を一回だけ行う。
自分のsplash画面ではこれを利用しています。
下記の場合は、1.5秒後にgameLogic関数を1回だけ呼び出す例です。
// スケジュールの実行を一回だけ行う。 this->scheduleOnce(schedule_selector (HelloWorld::gameLogic), 1.5f ); //
●スケジュールの停止
// スケジュールの停止 this->unschedule(schedule_selector (HelloWorld::gameLogic)); //