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.

introduzca la descripción de la imagen aquí

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)
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow