如何在SKLabelNode中为不断增加的数字设置动画

时间:2015-03-12 19:28:09

标签: swift sprite-kit sklabelnode

如何在SKLabelNode动画中增加数字?

如果您玩过Clash of Clans,那么当您收集Elixir或Gold时,您将熟悉您的总计动画。

即。当我向Integer添加500时,我想动画SKLabelNode以快速循环显示从0到500的数字。所以每次按下按钮,动画都会出现。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我在操场上做一个快速的代码来引导一些光,我不知道代码是否100%工作,但逻辑是这个

var timeAnimation = 2;
var coinsLabel:SKLabelNode = SKLabelNode(text: "0");
var gainCoin = 400;
var currentCoin = 20;

func addCoin(coinTotal:Int)
{
    currentCoin = coinTotal+currentCoin;

    self.runAction(SKAction.customActionWithDuration(timeAnimation, updateLabel));

    func updateLabel(node:SKNode!, t:CGFloat) -> Void{
        let coinToAdd = currentCoin*(t/timeAnimation);
        coinsLabel.text = ""+Int(coinToAdd);
    } 
}

答案 1 :(得分:0)

首先,将分数打印为0.将变量i(您不必将其称之为)初始化为0.然后,在更新功能中,打印分数并增加i。为我工作。

override func update(currentTime: NSTimeInterval)
{
   if i <= score
   {
     scoreText.text = "Score \(i)"
     i++
   }
}