дублирование CCSprite

у меня есть CCSprite объект, и я хочу сделать копию в другом CCSprite, Тогда я хочу показать эту копию. Я попробовал этот код, но он делает ошибку во время выполнения.

CCSprite* copy=CCSprite::spriteWithTexture(original->getTexture());

Как я могу сделать копию моего CCSprite?

2

Решение

если вы хотите иметь много дубликатов спрайтов, вам нужно сохранить свои спрайты в CCArray, а затем снова вызвать функцию добавления спрайтов, используя для этой функции расписание.

0

Другие решения

Вы должны убедиться, что текстура оригинала не будет удалена, когда копия использует его.

0

Вы смотрели в CCObject :: copy ()?

Я часто использую эту технику для копирования действий. CCSprite является производным от CCObject, поэтому, хотя я не пробовал, вы можете скопировать спрайт, вызвав copy () для ваших экземпляров спрайта.

0

Вы делаете это для скорости?

Если это так, вы должны использовать «спрайт листы». В листе спрайтов набор текстовых фреймов (графики) загружается в текстурную память, а затем каждый раз, когда вы создаете спрайт с любым из этих спрайтовых фреймов, система фактически использует ту же текстуру, которая уже находится в памяти. Кроме того, при рисовании спрайтов на экране любой спрайт, использующий эту текстуру, делает это «в пакетном режиме» (все одновременно), сохраняя циклы обработки (это быстро).

Для примера посмотрите этот проект. Спрайты машины и кошки загружаются в лист спрайтов:
http://www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d-x/

0

cocos2dx не предоставил метод клонирования для спрайта. Вы должны были сделать это самостоятельно, взяв текстуру первого спрайта, и таким образом создать спрайт с этой текстурой.

Sprite * clonedSprite = Sprite :: createWithTexture (originalSprite-> getTexture ());

0
По вопросам рекламы [email protected]