setScale в cocos2d для определенного времени Xcode

Я пытаюсь масштабировать спрайт, когда пользователь получает дополнительную жизнь, и возвращает его к его нормальному значению через 1 или 2 секунды.

У меня есть это:

if (_score == 2)
{
_life = _life + 1;
string strLife = StringHelper::ToString(_life);
_labelUpperLifeCounter->SetString(strLife);_labelUpperScoreLife->setScale(2.5f);

}

Это работает, но я не знаю, как установить его обратно:

_labelUpperScoreLife->setScale(1.7f);

или даже лучше, чтобы оживить его 2-3 раза, как пульс, прежде чем он вернется к нормальному состоянию …

благодарю вас!

0

Решение

Я предполагаю, что то же самое доступно в C ++. Вот как я мог сделать это в obj-c

id scaleUp = [CCActionScaleTo actionWithDuration:.1f scale:2.5f];
id pause = [CCActionDelay actionWithDuration : 1.f];
id scaleBack = [CCActionScaleTo actionWithDuration:.1f scale:1.7f];
id seq = [CCActionSequence actions: scaleUp,pause,scaleBack,nil];
[_labelUpperScoreLive runAction:seq];

просто общая идея 🙂 перевод на с ++ — это ваш опыт. Это изменит шкалу, немного остановится, а затем вернет шкалу в исходное состояние.

1

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

В конце концов я нашел другой путь, потому что потерял слишком много времени …

Я создал копию спрайта и поместил его поверх другого. Я масштабировал это и исчезал …

_labelUpperScoreLife2->setVisible(true);
_labelUpperScoreLife2->setScale(3.0f);
_labelUpperScoreLife2->runAction(CCFadeOut::create(1));

Это выглядит здорово!

Спасибо за ответ!

0

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