ChristLarsen
ChristLarsen

Reputation: 115

Lag using runAction with a SKLabelNode on swift

I am having a lag issue with this function that is used a lot of times in my app...

plusOne(scorelabel.position,plus: 1)

And:

 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
        })


    }

The first time I use the plusOne function, always make my app be freezed for a little time...

I do not know if I have been doing the things well... myLabel has been declared global but it is the same... always with lag on the first execution.

Upvotes: 2

Views: 140

Answers (1)

Christian
Christian

Reputation: 22343

You need to set the font of your label with a fix font at start.

Like that:

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

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

Otherwise, your font gets loaded at the first usage and not on app-start.

Upvotes: 2

Related Questions