Идея, стоящая за CCSpriteBatchNode, состоит в том, чтобы один раз визуализировать текстуру для многих спрайтов, что должно повысить производительность, а не рассматривать каждый спрайт как отдельную текстуру.
Тем не менее, я не совсем понимаю, как это выгодно, в отличие от использования только одного атласа текстуры. Если вы создаете текстуру с этим:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"gameTexture.plist"];
и затем каждое отдельное изображение, которое вы используете для спрайтов, извлекается с использованием frame
методов, тогда разве все ваши изображения не используют одну и ту же единственную визуализированную текстуру, даже если никогда не был представлен пакетный узел?
Конечно, вы можете использовать батчод в сочетании с текстурным атласом, но как это на самом деле выигрыш в производительности? Если вы не используете batchnode, выполняет ли он рендеринг текстуры несколько раз, даже если она кэшируется?