Вам необходимо создать новый CCSpriteBatchNode для каждой используемой вами таблицы спрайтов (под таблицей спрайтов я имею в виду объединенный файл pvr.ccz и файл .plist)
CCSpriteFrameCache - это один кеш, общий для всех ваших сцен и классов. Когда вы вызываете этот метод:
[CCSpriteFrameCache sharedSpriteFrameCache]
Вы не создаете новый объект CCSpriteFrameCache каждый раз, есть только ОДИН экземпляр. Вы храните все загруженные спрайт-листы в этом единственном кэше. Таким образом, вы можете загрузить 2 спрайт-листа в кеш примерно так:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sheet1.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sheet2.plist"];
Затем вам нужно создать CCSpriteBatchNode для КАЖДОЙ spritesheet, вы не можете иметь более одного листа в узле пакета:
CCSpriteBatchNode *spriteSheet1 = [CCSpriteBatchNode batchNodeWithFile:@"sheet1.pvr.ccz"];
CCSpriteBatchNode *spriteSheet2 = [CCSpriteBatchNode batchNodeWithFile:@"sheet2.pvr.ccz"];
Затем вы можете добавить оба этих пакетных узла в слой, если хотите. Спрайты, добавленные в узлы пакета, должны быть из той таблицы, которую использует узел пакета.