sprite-kit
SKSpriteNode (Sprites)
Sök…
Syntax
bekvämlighet init (imageNamed name: String) // Skapa en SKSpriteNode från en namngiven bild i tillgångskatalogen
var position: CGPoint // SKNode-egenskap som ärvs av SKSpriteNode. Nodens position i föräldrakoordinatsystemet.
func addChild (_ node: SKNode) // SKNode-metod, ärvt av SKScene. Används för att lägga till en SKSpriteNode till scenen (används också för att lägga till SKNodes till andra SKNodes).
Lägga till en sprite till scenen
I SpriteKit representeras en Sprite av klassen SKSpriteNode
(som ärver från SKNode
).
Skapa först ett nytt Xcode-projekt baserat på SpriteKit-mallen som beskrivs i ditt första SpriteKit-spel .
Skapa en Sprite
Nu kan du skapa en SKSpriteNode med en bild laddad i mappen Assets.xcassets
.
let spaceship = SKSpriteNode(imageNamed: "Spaceship")
Spaceship
är namnet på bildobjektet i Assets.xcassets.
När spriten har skapats kan du lägga till den i din scen (eller till någon annan nod).
Öppna GameScene.swift
, ta bort allt innehåll och lägg till följande
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)
}
}
Tryck nu på CMD + R i Xcode för att starta simulatorn.
Subclassing SKSpriteNode
Du kan underklassera SKSpriteNode
och definiera din egen typ av 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)
}
}