特定のタイプのスプライトを何度もインスタンス化するゲームを作成しています。このスプライトには単純なループ アニメーションが含まれるため、アニメーション プロセスを駆動するために使用される関連付けられたスプライト イメージを利用してキャッシュCCSpriteFrameCache
する必要があると思います。CCSPriteBatchNode
Raywenderlich.com でよく参照されるHow To Use Animations and Sprite Sheets in Cocos2Dを読んでいて、そのプロセスをほぼ理解しています。
私の問題は、シーン ファイルのコード内にアニメーション シーケンス全体が含まれていることです。CCSprite
私が作成した子、クラス (または同様のクラス) 内にこの同じコードを配置する方法と、ゲーム シーン内でこの自己完結型のスプライトを使用する方法を解釈するのに問題があります。
言い換えれば、CCSprite
シーンの実装内でインスタンス化できる子クラスを持つことが私の望みです。いくつかのパラメーターが子のコンストラクターに渡され、CCSprite
スプライトがゲーム シーンに追加されると、スプライトのアニメーションがシーン コードとは別に自動的に発生します。
これどうやってするの?
(非) 明確化のポイントまたはなぜ私が混乱しているのか
Ray のチュートリアルのステップ 2 でCCSpriteBatchNode
、アニメーション化されたスプライトに使用される をself
(ゲーム シーンの)子として追加するように指示しています。子クラスの実装CCSpriteBatchNode
内でを定義した場合、私の親シーンに?これを(正しく)どのように行うべきですか?CCSprite
CCSpriteBatchNode
また、シングルトン クラスの場合、コンストラクターCCSpriteFrameCache
に追加する際に問題が発生しますか?それとも、アプリケーションの初期化などでこれを 1 回だけ呼び出す必要がありますか?[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"my_sprite.plist"];
CCSprite
一般的に、私はただ混乱しています。シーンに (複数回) 追加できる自己完結型のアニメーション スプライトを作成するにはどうすればよいでしょうか。また、シーンはアニメーション シーケンスの配線について心配する必要がなく、小さな iOS プロセッサの速度が低下することもありません。
この問題をどのように解決するかはあまり気にしません。たぶん、私は間違っているだけのいくつかの壮大な仮定をしました。最終結果が上記のとおりである限り、私はこの問題を解決するために別の方法をとります。
ありがとうございました!