SKNode现在显示在另一个班级

时间:2015-10-24 16:39:01

标签: ios xcode swift sprite-kit

我在单独的文件中有两个类。

在" 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
}

因此,打印出打印行,但永远不会添加节点。

我已经多次使用我的代码了,但我无法破解它。

任何线索?

1 个答案:

答案 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)
}