Hintergrundanimation mit Tiefe in SpriteKit

Ich erstelle mein erstes Spiel mit Swift und SpriteKit und möchte einen Hintergrund hinzufügen. Das Spiel spielt im Weltraum, also wollte ich Sterne im Hintergrund haben, die sich mit unterschiedlichen Geschwindigkeiten bewegen. Momentan mache ich einen 3D-Look, indem ich die größeren Sterne schneller über den Bildschirm bewegen lasse als die kleineren. Gibt es eine effiziente Möglichkeit, dies zu tun, anstatt eine SKNode-Unterklasse wie diese zu erstellen und sie zu Beginn von @ als untergeordnetes Element hinzuzufügeDidMoveToView? Es scheint, als wäre diese Methode ziemlich intensiv, aber ich dachte, ich würde es versuchen, bevor ich das gleiche Bild immer wieder wiederverwende.

class BackGroundAnimation:SKNode{

let theView:SKView
init(aView:SKView){

    theView = aView

    super.init()

    animate()
}


func animate(){


    for _ in 1...200{

        let randomSize = random(1, max: 3)
        var randomPosx = random(1,max: 1000)
        randomPosx = randomPosx/1000.0
        var randomPosy = random(1,max: 1000)
        randomPosy = randomPosy/1000.0

        let star:SKSpriteNode = SKSpriteNode(texture:starTexture)
        star.setScale(randomSize/60.0)



        star.position = CGPoint(x:(theView.scene?.size.width)! * randomPosx,y:(theView.scene?.size.width)! * randomPosy)//    (self.scene.size.width)*randomPosx, y:(self.scene.size.height) * randomPosy)

        //star.position = CGPoint(x: 200,y: 200)

        star.physicsBody = SKPhysicsBody(circleOfRadius: star.size.width/2 )
        star.physicsBody?.collisionBitMask = 0
        star.physicsBody?.categoryBitMask = 0
        star.physicsBody?.contactTestBitMask = 0

        star.physicsBody?.linearDamping = 0
        star.physicsBody?.velocity = CGVector(dx:1 * randomSize, dy:0)
        star.name = "star"

        //addChild(star)
        self.addChild(star)
        self.moveToParent(self.scene!)


    }


}




required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

}

Jede Hilfe wäre toll.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage