我在单独的文件中有两个类。
在" main"文件,我的场景所在,我正在调用此函数:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
for touch in touches {
character().spawnCharacter()
}
}
所以,在我的第二个文件中character.swift
我已经使用了这段代码:
import SpriteKit
public func spawnCharacter() -> SKSpriteNode{
let charNode = SKSpriteNode(imageNamed: "Hero")
charNode.name = "Hero"
charNode.postion = CGPointZero
charNode.zPosition = 3
addChild(charNode)
print("Node added")
return charNode
}
因此,打印出打印行,但永远不会添加节点。
我已经多次使用我的代码了,但我无法破解它。
任何线索?
答案 0 :(得分:1)
我不完全确定你的主文件是如何组织的,但我认为问题在于:
for touch in touches {
character().spawnCharacter() // <- SKSpriteNode is created but not added
}
您在spawnCharacter()
中创建精灵节点,但不使用返回的对象。
可能的解决方法是:
for touch in touches {
let character = character().spawnCharacter()
scene.addChild(character)
}