Я пытаюсь оптимизировать свою игру, используя CCSpriteBatchNode, чтобы визуализировать несколько спрайтов одновременно.Однако по какой-то причине cocos2d выдает мне эту ошибку, когда я представляю CCSpriteBatchNode в качестве родителя для моих спрайтов:
"CCSprite is not using the same texture id"
Я смущен этим, потому что у меня есть один атлас текстуры 1024x1024 со всей моей графикой.Он был создан с TexturePacker и без пакетного узла, все это работает.Я загружаю его с этим:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"atlas1.plist"];
И теперь я пытаюсь использовать CCSpriteBatchNode следующим образом:
CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:@"something.png"];
CCSpriteBatchNode* bar = [CCSpriteBatchNode batchNodeWithFile:@"atlas1.png"];
[bar addChild: sprite]; // assert error here
Я попытался добавить некоторые отладочные выходные данные NSLog в init текстуру cocos2d/ lookup code и, что удивительно, есть некоторые текстуры, созданные с разными размерами (например, 256x256 или даже меньше).Я не понимаю, как это может произойти, когда у меня есть только один 1024x1024 PNG в качестве входа.
Что происходит?Как я могу отладить это?
ОБНОВЛЕНИЕ:
Ответ Бонге помог мне исправить это - заставил меня дважды взглянуть на все.В моем симуляторе iOS были загружены некоторые устаревшие PNG-файлы из более старой версии игры, хотя их больше не было в проекте Xcode.Выполнить «Очистить» или даже «Очистить папку сборки» из XCode не сработало, но с помощью команды «Сбросить содержимое и настройки» из симулятора iOS получилось.Ура!