当用户获得额外的生命并在1或2秒后将其设置为正常值时,我正在尝试缩放一个sprite。
我有这个:
if (_score == 2)
{
_life = _life + 1;
string strLife = StringHelper::ToString(_life);
_labelUpperLifeCounter->SetString(strLife);
_labelUpperScoreLife->setScale(2.5f);
}它起作用了,但我不知道怎么把它放回原处:
_labelUpperScoreLife->setScale(1.7f);或者更好地让它在恢复正常之前像脉搏一样动2-3次.
谢谢!
发布于 2014-10-17 21:19:39
我假设在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];一般的想法是:)翻译成c++是你的专业知识。这将刻度分数,停滞一点,然后返回到初始状态。
发布于 2014-10-18 16:44:56
最后我找到了另一种方法因为我失去了太多的时间..。
我创造了一个雪碧的副本,并把它放在另一个上面。我已经把它缩小了.
_labelUpperScoreLife2->setVisible(true);
_labelUpperScoreLife2->setScale(3.0f);
_labelUpperScoreLife2->runAction(CCFadeOut::create(1));看上去很棒!
谢谢你的回答!
https://stackoverflow.com/questions/26433474
复制相似问题