Анимация таблицы спрайтов с масштабированными кадрами

Чтобы создать анимацию в cocos2d-x 3.2, я делаю это:

 SpriteFrameCache* cache = SpriteFrameCache::getInstance();

Vector<SpriteFrame*> animFrames(15);

for(int i = 1; i <= 7; ++i)
{
SpriteFrame* frame = cache->getSpriteFrameByName(String::createWithFormat("%d.png", i)->getCString());
animFrames.pushBack(frame);
}auto animation = Animation::createWithSpriteFrames(animFrames, 1 / animFrames.size());
auto animate = Animate::create(animation);
pSprite->runAction(animate);

Но теперь мне нужно несколько кадров для масштабирования ByX с -1, чтобы создать зеркальное изображение. SpriteFrame не имеет scale метод. Тоже не могу scale pSprite поскольку только некоторые из кадров должны быть масштабированы. Как я могу решить эту проблему?

0

Решение

У вас довольно странная ситуация 🙂

  1. Вы можете запланировать селектор обновлений на спрайте и установить для flipX значение true / false в зависимости от ваших желаемых условий. Это мое личное предпочтение.

  2. Вы не можете взломать SpriteFrame таким образом, но вы можете использовать RenderTexture: http://www.cocos2d-x.org/reference/native-cpp/V3.0alpha0/d9/ddc/classcocos2d_1_1_render_texture.html — переверните нужные спрайты в новой текстуре, в основном создайте новый лист спрайтов на лету. Это плохая идея.

0

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


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