Попробуйте использовать атласные текстуры для своей игры, потому что вы используете тот же спрайт, что и во многих случаях
Использование
CCSpriteFrameCache, CCSpriteBatchNode
Таким образом, вы можете оптимизировать кэш текстур, добавив еще больше различных текстур в одну текстуру. И все они объединены в один узел. Это также уменьшает количество вызовов отрисовки и увеличивает частоту кадров.
Попробуйте использовать
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"Characters.plist"];
CCSpriteBatchNode* batch = [CCSpriteBatchNode batchNodeWithFile:@"Characters.png" capacity:10];
[self addChild:batch];
CCSprite* player1 = [CCSprite spriteWithSpriteFrameName:@"Luce.png"];
player1.position = ccp(winSize.width * 0.2, winSize.height * 0.8);
[batch addChild:player1];
и используйте
CCSprite* player = nil;
CCARRAY_FOREACH(batch.children, player1) {
// some computational code and condition
if (sonecondition) {
[player1 setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"spriteframename.png"]];
}
}
в обновлении или в других частях кода
Использование Zwoptex
TexturePacker для создания 2D текстурных очков
Надеюсь, это поможет
Удачи