ピエールの日記 by pierre 長尾和美

ピエールです。SamuraiTraditional(サムトラ)、たけしを(逸見泰典とのユニット)でギターやってます♪思いつきをブログに! ^^v by pierre

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));
//

 - cocos2d-x, アプリ