Выполнить много действий эффекта одновременно в 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 );