gpt4 book ai didi

ios - 设置 SKTileMapNode 颜色时出现问题

转载 作者:行者123 更新时间:2023-11-30 10:59:25 26 4
gpt4 key购买 nike

我有一个自定义类,其中包含 SKTileMapNode(名为“gmap”)作为成员变量。我想使用 .color 属性根据用户交互重新着色节点。我使用以下代码来更改颜色。 (根据需要使用不同的 UIColors)

self.gmap.color = UIColor(red: 0.4, green: 0.65, blue: 0.125, alpha: 1)
self.gmap.colorBlendFactor = 1.0

当我在自定义类的初始化程序中重新着色节点时,此方法工作正常,但在其他地方使用时则不起作用。 (节点仍然正确显示,但其颜色没有改变)知道这里出了什么问题吗? SKTileMapNode 初始化后不能重新着色吗?谢谢你的帮助。

编辑:我没有找到答案,但我通过删除节点并添加新节点找到了解决方法。请参阅下面我的回答以获得完整的解释。

最佳答案

我从未找到好的答案,但我找到了解决方法。查找并删除旧节点,在代码中重新创建一个全新的节点,为该新节点重新着色并将该新节点添加到场景中。

if let child = self.childNode(withName: "gmap") as? SKTileMapNode {
//remove old node
child.removeFromParent()
var gmapTwo = SKTileMapNode()


//insert code to re-intialize Node here

//now you can recolor the node without a problem
gmapTwo.color = UIColor(red: 0.55, green: 0.55, blue: 0.925, alpha: 1)
gmapTwo.colorBlendFactor = 1
//(Make sure the new Node has the same name so you can find it again later)
gmapTwo.name = "gmap"
//add node to scene
self.addChild(gmapTwo)
}

(使用 .copy 函数创建节点的副本对我来说不起作用,相反,我必须在代码中手动复制节点)

抱歉,我没有真正的答案,但到目前为止,这是唯一对我有用的解决方案。希望对 SpriteKit 有更好了解的人能够更好地解释发生了什么

关于ios - 设置 SKTileMapNode 颜色时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561719/

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