sprite-kit
SKSpriteNode (Sprites)
Buscar..
Sintaxis
conveniencia init (nombre de imageNamed: String) // Crear un SKSpriteNode a partir de una imagen con nombre en el catálogo de activos
var position: CGPoint // propiedad SKNode, heredada por SKSpriteNode. La posición del nodo en el sistema de coordenadas de los padres.
func addChild (_ node: SKNode) // Método SKNode, heredado por SKScene. Se usa para agregar un SKSpriteNode a la escena (también se usa para agregar SKNodes a otros SKNodes).
Añadiendo un Sprite a la escena
En SpriteKit, un Sprite está representado por la clase SKSpriteNode
(que se hereda de SKNode
).
En primer lugar, cree un nuevo proyecto de Xcode basado en la plantilla SpriteKit como se describe en Su primer juego SpriteKit .
Creando un Sprite
Ahora puede crear un SKSpriteNode utilizando una imagen cargada en la carpeta Assets.xcassets
.
let spaceship = SKSpriteNode(imageNamed: "Spaceship")
Spaceship
es el nombre del elemento de imagen en Assets.xcassets.
Después de que se haya creado el sprite, puede agregarlo a su escena (o a cualquier otro nodo).
Abra GameScene.swift
, elimine todo su contenido y agregue lo siguiente
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)
}
}
Ahora presione CMD + R en Xcode para iniciar el simulador.
Subclase SKSpriteNode
Puede SKSpriteNode
subclase de SKSpriteNode
y definir su propio tipo de 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)
}
}