Выполнить много действий эффекта одновременно в Cocos2dx

Я новичок в Cocos2dx и пытаюсь создать анимацию вращения планеты, используя текстуру прямоугольника 3:1, которая содержит 3 квадрата - две грани (карта) сферы (третий квадрат - клон первого).). Я создаю массив кадров путем обрезки текстуры и добавляю их в CCAnimation. Затем я тестирую эту анимацию с двумя эффектами, чтобы квадратный кадр стал трехмерным кругом: CCLens и CCTurnOffTiles (в будущем я изменю его, чтобы отключить только сетки за пределами круга).

Но есть проблема: два эффекта не складываются. Если CCTurnOffTiles добавлен после CCLens, CCLens не будут работать; если CCLens добавляется после CCTurnOffTiles, CCDirector генерирует исключение нарушения чтения во время выполнения.

Есть ли какое-либо решение для одновременного запуска множества эффектов или реализации анимации планеты другим способом? Благодарю.

2 ответа

Решение

И CCTurnOffTiles, и CCLens3D наследуют CCGridAction.

Но одно отменяет другое: CCTurnOffTiles отключит плитки сетки, а CCLens3d нужны эти плитки сетки.

Я рекомендую вам нарисовать все спрайты планет, уже обведенные кружком и используя SpriteSheet, и затем анимировать их с помощью CCAnimation без использования CCTurnOffTiles или CCLens3D. Это проще всего и потребляет меньше ресурсов процессора.

Попробуйте использовать CCSpawn,

// Create the effects
CCLens3D * lensEffect; // Your CCLens3D create()
CCTurnOffTiles * turnOff; // Your CCTurnOfftiles create()

// Create a spawn to run them simultaneously
CCSpawn * sphereEffect = CCSpawn::createWithTwoActions( lensEffect, turnOff );

// Run the spawn
myObject -> runAction( sphereEffect );
Другие вопросы по тегам