sprite-kit
SKSpriteNode (Sprites)
Ricerca…
Sintassi
convenience init (nomeNameed: String) // Crea un SKSpriteNode da un'immagine con nome nel catalogo delle risorse
posizione var: CGPoint // proprietà SKNode, ereditata da SKSpriteNode. La posizione del nodo nel sistema di coordinamento dei genitori.
func addChild (_ node: SKNode) // metodo SKNode, ereditato da SKScene. Utilizzato per aggiungere un SKSpriteNode alla scena (utilizzato anche per aggiungere SKNodes ad altri SKNode).
Aggiungere uno Sprite alla scena
In SpriteKit uno Sprite è rappresentato dalla classe SKSpriteNode
(che eredita da SKNode
).
Prima di tutto crea un nuovo progetto Xcode basato sul modello SpriteKit come descritto nel tuo primo gioco SpriteKit .
Creare uno Sprite
Ora puoi creare un SKSpriteNode usando un'immagine caricata nella cartella Assets.xcassets
.
let spaceship = SKSpriteNode(imageNamed: "Spaceship")
Spaceship
è il nome dell'elemento immagine in Assets.xcassets.
Dopo aver creato lo sprite, puoi aggiungerlo alla tua scena (oa qualsiasi altro nodo).
Apri GameScene.swift
, rimuovi tutto il suo contenuto e aggiungi quanto segue
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)
}
}
Ora premi CMD + R in Xcode per lanciare il simulatore.
Sottoclasse di SKSpriteNode
È possibile SKSpriteNode
sottoclassi SKSpriteNode
e definire il proprio tipo di sprite.
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)
}
}