计时器栏使用比例SKAction,可怕的SpriteKit渲染性能

时间:2016-11-16 20:04:57

标签: ios performance sprite-kit skspritenode skaction

我在做什么,我认为,这是一个非常简单的计时器栏,屏幕上没有其他内容。然而,这无法在iPad Pro上保持60fps ......我做的事情显然是重而错吗?

let previewTime: TimeInterval = 3.0

func timerBar(){

    let tbW: CGFloat = frame.size.width / 2
    let tbH: CGFloat = 64
    let tbSize = CGSize(width: tbW, height: tbH)

    let timerBox = SKSpriteNode(color: SKColor.black, size: tbSize)
    timerBox.anchorPoint = CGPoint(x: 0.0, y: 0.0)
    timerBox.position = CGPoint(x: frame.size.width / 2 - (tbW / 2), y: 500)
    timerBox.zPosition = 8
    addChild(timerBox)

    let timerBoxBar = SKSpriteNode(color: .white, size: tbSize)
        timerBoxBar.anchorPoint = CGPoint(x: 0.0, y: 0.0)
        timerBoxBar.position.x = 0.0
        timerBoxBar.position.y = 0.0
        timerBoxBar.xScale = 0.0
    timerBox.addChild(timerBoxBar)

    let animPreviewTime = SKAction.scaleX(to: 1, duration: GameScene.previewTime)
    timerBoxBar.run(animPreviewTime){self.randomisePositions()}
}

这使得计时器栏具有黑色背景和白色计时器栏,在屏幕上动画3秒,直到计时器栏已满。

它明显地结结巴巴,并且乐器使用渲染的蓝色时刻表现出来,足以让它一直让它变得口吃。

更新

这里是渲染过程中的尖峰,正如你所看到的,时间条动画的任何一侧,绝对发生的事情都在发生:

enter image description here

Xcode版本8.2 beta(8C23)

iOS 10.2 Beta 2

现在正在下载iOS 10.2 beta 3 ...

0 个答案:

没有答案