CCSpriteBatch ノードからテクスチャ アトラスを切り替える必要があります。私が選んだアプローチは、プレイ可能なキャラクターが特定の X 軸 (700) に到達した後、ゲームがそれを変更するというものです。
視覚的には正常に動作しますが、問題は、変更中に画面が2〜3秒間フリーズし、コンソールでメモリ警告が表示されることです。
CCSpriteBatchNode を切り替える適切な (最も軽い) 方法はどうすればよいのか疑問に思うのは、私だけではないと思います。
以下の現在の切り替えコードを参照してください。
if(mainCharacter.x > 700)
{
//NSLog(@"switch!");
float oldHeroX, oldHeroY;
oldHeroX = mainCharacter.x;
oldHeroY = mainCharacter.y;
[_myBatchNode removeChild:mainCharacter];
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFramesFromFile:texturePList1];
[self removeChild:_myBatchNode];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:texturePList2];
_myBatchNode = [CCSpriteBatchNode batchNodeWithFile:texturePNG2];
[_myBatchNode.texture setAliasTexParameters];
[self addChild: _myBatchNode z:-6];
//this is just a method that starts the playable character sprite and add to batch node and layer
[self startCharacter:oldHeroX :oldHeroY];
}
ありがとう