精灵套件如何更改后台速度?

问题描述

最近开始研究spratkite。我遇到了一个问题。 创造了一个动人的背景。如何改变它的速度?

import SpriteKit
import GameplayKit

class BgDeceleration {
    //Background Speed 

    var bgDuration : Double = 5

   //Toggle

    var bgToggle = true {

        willSet {bgDuration = bgToggle ? 5.0 : 10.0}

        didSet {}

    }

}

let course = bgDeceleration()

class GameScene: SKScene {


    //Textures

    var bgTexture: SKTexture!

    //Sprite Nodes

    var bg = SKSpriteNode()

    //Sprite Objects

    var bgObject = SKNode()


    override func didMove(to view: SKView) {

        //Background Textures

        bgTexture = SKTexture(imageNamed: "bg.png")

        createObjects()

        createGame()

    }


    func createObjects() {

        self.addChild(bgObject)

    }

    func createGame() {

        createBg()

    }


    func createBg() {

        bgTexture = SKTexture(imageNamed: "bg.png")   

        let moveBg = SKAction.moveBy(x: -bgTexture.size().width,y: 0,duration: bgDeceleration.bgDuration)

        let replaceBg = SKAction.moveBy(x: bgTexture.size().width,duration: 0)

        let moveBgForever = SKAction.repeatForever(SKAction.sequence([moveBg,replaceBg]))

        for i in 0..<3 {

            bg = SKSpriteNode(texture: bgTexture)

            bg.position = CGPoint(x: bgTexture.size().width * CGFloat(i),y: size.height/2.0)

            bg.size.height = self.frame.height

            bg.run(moveBgForever)

            bg.zPosition = -1

            bgObject.addChild(bg)

        }
    }
}

extension GameScene {

    override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {

        //Toggle

        bgDeceleration.bgToggle.toggle()

    }

}

找到了解决办法。但它不起作用 Gradually increasing speed of scrolling background in SpriteKit 可能是因为 swift 版本。 如果可能,请分享解决方

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)