我使用XCode 7.2.1在SceneEditor中创建了一个自定义类(带有SKSpriteNode = PlayerNode)
我发现来自SKS文件的节点加载是使用init(编码器: NSCoder)方法初始化的,所以这里我将如何在swift中实现PlayerNode类
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
}
}当我运行这个项目时,节点的颜色一点也没有改变。但是当我在GameScene对象的didMoveToView方法中更改颜色时,如下所示:
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
}
}现在颜色发生了变化。有没有在PlayerNode类中设置颜色的方法?
发布于 2016-03-16 00:32:54
您创建了一个SKSpriteNode:
var player = SKSpriteNode()但是你想要:
var player = PlayerNode()https://stackoverflow.com/questions/36014999
复制相似问题