2

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

如果您玩过《部落冲突》,您就会熟悉在收集圣水或金币时总得分的动画。

即,当我将 500 添加到一个时,Integer我想动画化SKLabelNode以快速循环从 0 到 500 的数字。所以每次我按下按钮时,都会发生动画。

我应该如何解决这个问题?

4

2 回答 2

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);
    } 
}
于 2015-03-12T19:48:10.297 回答
0

首先,将分数打印为 0。将变量 i(您不必这样称呼它)初始化为 0。然后,在更新函数中,打印分数并增加 i。为我工作。

override func update(currentTime: NSTimeInterval)
{
   if i <= score
   {
     scoreText.text = "Score \(i)"
     i++
   }
}
于 2015-10-04T15:12:32.940 回答