Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如果未在init上添加,则不显示场景子对象_Swift_Sprite Kit - Fatal编程技术网

Swift 如果未在init上添加,则不显示场景子对象

Swift 如果未在init上添加,则不显示场景子对象,swift,sprite-kit,Swift,Sprite Kit,我试图显示按钮,如果在SceneKit场景中单击了一个对象,它们作为场景的子对象可见,但不会在屏幕上渲染 init(size: CGSize, gameController: GameController) { super.init(size: size) self.gameController = gameController self.scaleMode = .aspectFit // Label is shown in s

我试图显示按钮,如果在SceneKit场景中单击了一个对象,它们作为场景的子对象可见,但不会在屏幕上渲染

init(size: CGSize, gameController: GameController) {
        super.init(size: size)

        self.gameController = gameController
        self.scaleMode = .aspectFit

        // Label is shown in scene
        testLabel = SKLabelNode(text: "test")
        testLabel.position = CGPoint(x: 100, y: 100)
        testLabel.fontSize = 50.0
        testLabel.fontColor = UIColor.red
        addChild(testLabel)

        // Label is not shown in scene
        let timer = Timer(timeInterval: 1, repeats: false) { _ in 
            var label = SKLabelNode(text: "test 2")
            label.position = CGPoint(x: 200, y: 200)
            label.fontSize = 50.0
            label.fontColor = UIColor.red
            addChild(label)
        }      
}

我想你是在做一个计划外的计时器,然后把它扔掉。你的意思可能是Timer.scheduledTimer(…)

在任何情况下,对于SpriteKit来说,最好在SKAction框架内工作,否则最终会遇到一些问题,例如,您暂停了游戏,而计时器仍在运行,因为它们没有与SpriteKit协调

查看SKAction初始值设定项,特别是sequence()、wait(forDuration:)、run()


你能详细说明你面临的具体问题吗?我有一个游戏HUD(SceneKit叠加)。我想在HUD上单击按钮“生成”一个节点,但当我将一个节点添加到场景中时,它会在子节点中显示,但不会渲染它。这个计时器是一个演示。