首页 > 解决方案 > 来自自定义类的 Swift addChild

问题描述

我有个问题。

我制作了 swift 自定义类 test.swift 并希望将这个类中的精灵添加到 GameScene.swift

这是我的自定义类

import SpriteKit
import GameplayKit

var scene = GameScene()


class test: SKSpriteNode{


    func test_function(){

        let mysprite = SKSpriteNode(imageNamed: "spark3")
        mysprite.name="sparkle4"
        mysprite.position = CGPoint(x: frame.midX, y: frame.midY)
        mysprite.setScale(8)
        mysprite.zPosition=2
        self.scene?.addChild(mysprite)


}


}

在 GameScene 中,我将此函数称为

var new_class = test()

new_class.test_function()

但是精灵没有显示在应用程序中,我没有看到任何错误。

如果我直接在 GameScene 中复制该功能,它就可以工作。

谁能帮助我我做错了什么?

非常感谢

标签: swiftclasssprite-kitskspritenodeswift-class

解决方案


因为self.scene?nil子类内部,而它不在内部GameScene,所以在将节点scene?作为子类添加到场景后,它会被分配

self.scene?.addChild(mysprite)

//

所以你可以这样做

let tes = test()
self.scene?.addChild(tes)
tes.test_function()

推荐阅读