Я пытаюсь масштабировать спрайт, когда пользователь получает дополнительную жизнь, и возвращает его к его нормальному значению через 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 раза, как пульс, прежде чем он вернется к нормальному состоянию …
благодарю вас!
Я предполагаю, что то же самое доступно в 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];
просто общая идея 🙂 перевод на с ++ — это ваш опыт. Это изменит шкалу, немного остановится, а затем вернет шкалу в исходное состояние.
В конце концов я нашел другой путь, потому что потерял слишком много времени …
Я создал копию спрайта и поместил его поверх другого. Я масштабировал это и исчезал …
_labelUpperScoreLife2->setVisible(true);
_labelUpperScoreLife2->setScale(3.0f);
_labelUpperScoreLife2->runAction(CCFadeOut::create(1));
Это выглядит здорово!
Спасибо за ответ!