sprite-kit
SKSpriteNode (Sprites)
Zoeken…
Syntaxis
convenience init (imageNamed name: String) // Maak een SKSpriteNode van een afbeelding met naam in de activacatalogus
var positie: CGPoint // SKNode eigenschap, overgenomen door SKSpriteNode. De positie van het knooppunt in het coördinatenstelsel van de ouders.
func addChild (_ node: SKNode) // SKNode-methode, overgenomen door SKScene. Wordt gebruikt om een SKSpriteNode aan de scène toe te voegen (wordt ook gebruikt om SKNodes aan andere SKNodes toe te voegen).
Een Sprite aan de scène toevoegen
In SpriteKit wordt een Sprite vertegenwoordigd door de klasse SKSpriteNode
(die SKNode
van SKNode
).
Maak eerst een nieuw Xcode-project op basis van de SpriteKit-sjabloon zoals beschreven in Your First SpriteKit Game .
Een Sprite maken
U kunt nu een SKSpriteNode maken met behulp van een afbeelding die in de map Assets.xcassets
geladen.
let spaceship = SKSpriteNode(imageNamed: "Spaceship")
Spaceship
is de naam van het afbeeldingitem in de Assets.xcassets.
Nadat de sprite is gemaakt, kunt u deze aan uw scène (of aan een ander knooppunt) toevoegen.
Open GameScene.swift
, verwijder alle inhoud en voeg het volgende toe
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)
}
}
Druk nu op CMD + R in Xcode om de simulator te starten.
Subklasse SKSpriteNode
U kunt SKSpriteNode
subklasseeren en uw eigen type sprite definiëren.
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)
}
}