gpt4 book ai didi

swift - SKSpriteNode 在 init(NSCoder) 中设置颜色

转载 作者:行者123 更新时间:2023-11-30 13:36:27 24 4
gpt4 key购买 nike

我使用 XCode 7.2.1 在 SceneEditor 中创建 SKSpriteNode(使用自定义类 = PlayerNode)

我发现从 SKS 文件加载的节点是使用 init(coder: 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 类中设置颜色?

最佳答案

您创建了一个 SKSpriteNode:

var player = SKSpriteNode()

但你想要:

var player = PlayerNode()

关于swift - SKSpriteNode 在 init(NSCoder) 中设置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com