我遇到了这个问题并且无法解决它,我真的不了解有关展开变量的文档
var ladybug: SKNode = SKNode.childNodeWithName("ladybug")
错误:(字符串!) - > SKNode!不能转换为“SKNode”
感谢
答案 0 :(得分:3)
childNodeWithName
不是类方法。您可以在实例上调用它,而不是SKNode
类本身。
如果您在SKScene
子类中编写此代码,则要调用此方法的实例可能是self
。
答案 1 :(得分:2)
该方法运行正常:
var sprite = SKNode()
var ladybug: SKNode! = sprite.childNodeWithName("ladybug")
但是你需要在SKNode的实例上调用该方法,而不是SKNode本身。
答案 2 :(得分:1)
childNodeWithName返回一个可选的SKNode!。使用类型推断并记住,您必须从其父节点(通常是self,SKScene)中检索节点
let ladybug = self.childNodeWithName("ladybug")
这就是创建精灵时的情况
let ladybug = SKSpriteNode(ImageNamed:"ladybug.png")
labybug.name = "ladybug"
self.addChild(ladybug)
尝试使用let而不是var作为对象。您可以毫无问题地修改其属性,但最好使用常量。