【Cocos2d-x】ループ(タイマー)処理

【Cocos2d-x】ループ(タイマー)処理について

特定のメソッドを連続で呼び出したい時、遅延させて呼び出したい時はscheduleを使います。

void roop(float dt);
virtual void update(float dt);
void HelloWorld::roop(float dt) {
    log("呼び出し");
}

void HelloWorld::update(float dt) {
    log("update");
}

上記のメソッドを用意して、

//毎フレームHelloWorld::roopを呼び出したい時
this->schedule(schedule_selector(HelloWorld::roop));
//毎フレームHelloworld::updateを呼び出したい時
this->scheduleUpdate();

//秒毎にHelloWorld::roopを呼び出したい時
this->schedule(schedule_selector(HelloWorld::roop), 1.0f);

//3秒後にHelloWorld::roopを1回だけ呼び出したい時
this->schedule(schedule_selector(HelloWorld::roop), 1.0f);

//5秒後に1秒毎にHelloWorld::roopを7回呼び出したい時
this->schedule(schedule_selector(HelloWorld::roop), 1.0f, 10, 5.0f);

scheduleを途中で止めたい場合、

//HelloWorld::roopのscheduleを止める時
this->unschedule(schedule_selector(HelloWorld::roop));

//updateを止める時
this->unscheduleUpdate();

//全てのscheduleを止める時
this->unscheduleAllCallbacks();

今回は以上です。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

CAPTCHA