在swift上使用带有SKLabelNode的runAction延迟

时间:2015-04-25 19:05:07

标签: ios swift sprite-kit lag preload

我在这个函数中遇到了一个滞后问题,在我的应用程序中使用了很多次......

plusOne(scorelabel.position,plus: 1)

 func plusOne(position: CGPoint, plus : Int) {

        myLabel.setScale(1)
        myLabel.text = "+"+String(plus)
        myLabel.position = position
        myLabel.hidden = false

        let action1 = SKAction.scaleTo(2, duration: 0.5)
        let action2 = SKAction.fadeOutWithDuration(0.5)
        let actionGroup = SKAction.group([action1,action2])

        myLabel.runAction(actionGroup,completion: {
            self.myLabel.hidden = true
        })


    }

我第一次使用plusOne功能时,总是让我的应用程序冻结一段时间......

我不知道我是否做得很好...... myLabel已被宣布为全局但是它是相同的......总是在第一次执行时滞后。

1 个答案:

答案 0 :(得分:2)

您需要在开始时使用修复字体设置标签的字体。

就像那样:

let yourFont = UIFont(name: "yourfontName", size: 17)

var myLabel = SKLabelNode(fontNamed: yourFont?.fontName)

否则,您的字体会在第一次使用时加载,而不是在app-start上加载。