0

スプライト バッチ ノードを機能させるのに問題があります。これは、概念を完全に理解していないことが原因の 1 つです。SpriteFrameCache は共有されているため、簡単にアクセスできますが、SpriteBatchNode は共有されていないため、別のクラスからアクセスする最善の方法がわかりません。

メインの GameplayLayer.m でスプライト バッチ ノードをインスタンス変数として設定しました。

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"MyTexture.plist"];
spriteBatchNode = [CCSpriteBatchNode batchNodeWithFile:@"MyTexture.png"];

しかし、クラス内にアニメーションが設定された Monster クラスがありますが、スプライトは GameplayLayer クラスで作成されたテクスチャにあります。

CCAnimation *walkAnim = [CCAnimation animation];
[walkAnim addSpriteFrame:[spriteFrameCache spriteFrameByName:@"monster-sprite-walk0.png"]];
//some other code
self.monsterWalkAnimation = [CCRepeatForever actionWithAction:walkAnimationAction];

テクスチャがどこにあるのかわからないため、これは機能しません。そのスプライト バッチ ノードにアクセスする最善の方法は何ですか? または、これをすべて間違って設定していますか?

4

0 に答える 0