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.

voer hier de afbeeldingsbeschrijving in

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow