FC2ブログ

Entries

cocos2d 描画と更新の巻

iPhone 2D ゲーム用ライブラリ cocos2d プログラミングガイドの、描画と更新を日本語訳してみました。

描画のタイミングや、ノードの更新のタイミングを理解しましょう

--------------------------------
cocos2dプログラミングガイド
描画と更新を理解する

<目次
描画と更新

他のゲームエンジンと同様に、描画と更新にはふたつの異なる方法があります。

描画

それぞれのノードは描画メソッドを持ちます。このメソッドは、フレーム毎に呼び出されます。このメソッドの目的は、ノードの描画、ただそれだけで、それ以上でもそれ以下でもありません。このメソッド内で、ivars を更新すべきではありません。

CCNode は、空の描画メソッドを持ちます。

カスタムノードを使用する場合は、描画メソッドをオーバーライドする必要がでてくると思います。以下の OpenGL のステートを描画メソッド呼び出し前にあらかじめ設定しても、なんの意味もありません:

・glEnableClientState(GL_VERTEX_ARRAY)
・glEnableClientState(GL_COLOR_ARRAY)
・glEnableClientState(GL_TEXTURE_COORD_ARRAY)
・glEnable(GL_TEXTURE_2D)

重要:これらのステートを有効・無効にする必要がある場合は、それらを復元する必要があります。
例:


更新
デフォルトでは、それぞれのノードは更新メソッドを持っていません。ノードのステートを更新する必要がある場合は、コールバック関数をスケジューリングしてください。

CCNode のスケジューリングメソッドを呼び出してスケジューリングすることをおすすめします。NSTimer の使用はおすすめしません。

CCNode はタイマーのために以下のメソッドを持っています:

・scheduleUpdate
・scheduleUpdateWithPriority:(int)priority
・scheduleSelector:(SEL)selector
・scheduleSelector:(SEL)selector interval:(float)interval

上記メソッドの特性:

・スケジュールされたコールバック関数は、そのノードが「ステージ上(on stage)」にあって、そのノードが動作中のノードの一部である場合にのみ呼び出されます。
・スケジュールされたコールバック関数は、ディレクターが停止している場合は呼び出されません。
・これらのメソッド内でいかなる描画も行うべきではありません。
・これらは、引数としてデルタタイム(delta time)を受け取ります。

scheduleUpdate
scheduleUpdate かつ/または scheduleUpdateWithPriority はコールバック関数をスケジュールするお勧めする方法です。(v0.99.3 から有効)

これらのメソッドを呼ぶと、Update メソッドが「delta time」を引数として、フレームごとに呼び出されるようになります。

scheduleUpdate は scheduleUpdateWithPriority:0 と指定したときと同じです。

例:

scheduleSelector と比べると、少しだけ速く、消費するメモリが少しだけ少ないので、scheduleSelector ではなくて scheduleUpdate を使ってみましょう。


scheduleSelector
scheduleSelector:(SEL)selector はコールバック関数をスケジュールする「古い」方法です。インターバル(interval)を指定してコールバックをスケジュールできますが、優先順位は指定できません。

interval==0 を指定する場合また、interval を使用しない場合はスケジュールしたコールバックはフレームごとに呼び出されます。

例:

コールバック関数の呼び出しを止めるには、以下のようにします:

-----------------------------------------

久々に翻訳が短かった。

Node クラスを定義すると、draw は 呼び出されるけど、update は自分で呼び出しをスケジュールしてあげないといけないんですね。

デートをするときは、お食事は自動的に行くけど、その後はきちんとスケジュールしておかないといけないのと似ています。

似てないか・・・。

スポンサーサイト



スポンサード リンク

Appendix

出演ゲーム

みやちかんたろうの大冒険

↑インストールはこちらから
予告編

21面デモ

ステージ作成

検索フォーム

訪問者

Apple製品紹介

Apple MacBook Air 1.6GHz 13.3インチ MB003J/A

中古価格
¥59,800から
(2013/1/24 06:45時点)

QRコード

QR

メールフォーム

名前:
メール:
件名:
本文:

Extra

プロフィール

みやちかんたろう

Author:みやちかんたろう
種別:きいろいねこ
年齢:10歳
性別:オス
趣味:昆虫採集
twitter:@gatsupport

※このサイトはリンクフリーです。ご自由にリンクしてください。相互リンクもじゃんじゃん募集中です!!

最新記事

最新コメント

最新トラックバック

月別アーカイブ