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.

ange bildbeskrivning här

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow