sprite-kit
SKSpriteNode (Sprites)
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.
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)
}
}