Suche…


Syntax

  • Bequemlichkeit init (imageNamed name: String) // Erstellen Sie einen SKSpriteNode aus einem benannten Image im Asset-Katalog

  • var position: CGPoint // SKNode-Eigenschaft, geerbt von SKSpriteNode. Die Position des Knotens im Koordinatensystem der Eltern.

  • func addChild (_ node: SKNode) // Methode SKNode, vererbt von SKScene. Wird verwendet, um der Szene einen SKSpriteNode hinzuzufügen (wird auch verwendet, um SKNodes anderen SKNodes hinzuzufügen).

Ein Sprite zur Szene hinzufügen

In SpriteKit wird ein Sprite von der SKSpriteNode Klasse (die von SKNode erbt) dargestellt.

Erstellen Sie zunächst ein neues Xcode-Projekt basierend auf der SpriteKit-Vorlage, wie in Your First SpriteKit Game beschrieben .

Ein Sprite erstellen

Jetzt können Sie einen SKSpriteNode mithilfe eines Bildes erstellen, das in den Ordner Assets.xcassets geladen wird.

let spaceship = SKSpriteNode(imageNamed: "Spaceship")

Spaceship ist der Name des Bildelements in den Assets.xcassets.

Nachdem das Sprite erstellt wurde, können Sie es Ihrer Szene (oder einem beliebigen anderen Knoten) hinzufügen.

Öffne GameScene.swift , entferne den gesamten Inhalt und füge Folgendes hinzu

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        let enemy = SKSpriteNode(imageNamed: "Spaceship")
        enemy.position = CGPoint(x:self.frame.midX, y:self.frame.midY)
        self.addChild(enemy)
    }
}

Drücken Sie nun CMD + R in Xcode, um den Simulator zu starten.

Geben Sie hier die Bildbeschreibung ein

Unterklassen von SKSpriteNode

Sie können die SKSpriteNode Klasse SKSpriteNode und Ihren eigenen Sprite-Typ definieren.

class Hero: SKSpriteNode {
    //Use a convenience init when you want to hard code values
    convenience init() {
        let texture = SKTexture(imageNamed: "Hero")
        self.init(texture: texture, color: .clearColor(), size: texture.size())
    }

    //We need to override this to allow for class to work in SpriteKit Scene Builder
    required init?(coder aDecoder: NSCoder) {
        super.init(coder:aDecoder)
    }

    //Override this to allow Hero to have access all convenience init methods
    override init(texture: SKTexture?, color: UIColor, size: CGSize) 
    {
        super.init(texture: texture, color: color, size: size)
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow