Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

cocos2d入門編 〜タイマーを使う(scheduleUpdate)〜

0 Comments
Posted by Kuro on 2013/01/15

cocos2dでのタイマーの使い方を紹介します。

NSTimerの場合はこんな感じ

Objective-C – NSTimerについて(alloc, release, invalidateとか)-

cocos2dでは

cocos2dではCCNodeクラス(CCSceneやCCLayerの親クラス)が”scheduleUpdate”というメソッドを持っています。
“[self scheduleUpdate];”とすると”update”というメソッドが1フレームごとに呼ばれます。

秒数を指定する場合

秒数を指定する場合は以下のような呼び出し方をします。
[self schedule:@selector(hogehoge) interval:2.0f];
2秒ごとに”hogehoge”を呼び出しています。

ここでは”[self unschedule:_cmd];”を使って呼び出しサイクルを途中で変更しています。
“_cmd”は現在のセレクターのメソッドを表すキーワードです。
この場合は[self unschedule:@selector(hogehoge)];と同じです。
一度スケジュールを止めて、新たに秒数を設定し直しています。

タイマーを止める方法

上にも書きましたがセレクターを指定して止める場合は以下のように記述します

“scheduleUpdate”を止める場合は以下のように記述します。

すべてのスケジュールを止める場合は以下のように記述します。

1回だけ呼びたい場合

一度だけ呼びたい場合もあると思います。
UIKitでは”performSelector”を使うような場合です。

cocos2dでは”scheduleOnce”を使います。

これで2秒後に一度だけ呼ばれるようになります。

*追記
cocos2dのscheduleメソッドは引数を持てないようです。
ちょっと不便ですね。

スポンサードリンク


You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

Popular Posts