0
votes

I use XCode 7.2.1 to create a SKSpriteNode in the SceneEditor (with custom class = PlayerNode)

I found that Node load from a SKS file are initialized with the method init(coder: NSCoder) so here how i implement PlayerNode class in swift

class PlayerNode : SKSpriteNode {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.initializePhysics()
    }

    func initializePhysics() {
        /* blabla */
        self.color = SKColor.greenColor()
        self.colorBlendFactor = 1.0
        self.blendMode = .Replace
    }
}

When i run the project, the node color do not change not even a little. But when i change the color in the method didMoveToView of GameScene object, like:

class GameScene: SKScene {

    var player = SKSpriteNode()

    override func didMoveToView(view: SKView) {
        super.didMoveToView(view)
        self.player = (self.childNodeWithName("player") as? SKSpriteNode)!

        self.player.color = SKColor.greenColor()
        self.player.colorBlendFactor = 1.0
        self.player.blendMode = .Replace
    }
}

Now the color change. Is there a way to set color in the PlayerNode class ?

1

1 Answers

0
votes

You created a SKSpriteNode:

var player = SKSpriteNode()

But you want:

var player = PlayerNode()