swift - 来自自定义类的 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 中复制该功能,它就可以工作。
谁能帮助我我做错了什么?
非常感谢
解决方案
因为self.scene?
在nil
子类内部,而它不在内部GameScene
,所以在将节点scene?
作为子类添加到场景后,它会被分配
self.scene?.addChild(mysprite)
//
所以你可以这样做
let tes = test()
self.scene?.addChild(tes)
tes.test_function()
推荐阅读
- flutter - 错误:找不到正确的提供者
高于此消费者 颤振中的小部件 - node.js - Botbuilder Proactive cancelAllDialogs() 与 Azure Functions 中的节点
- react-admin - 为创建和编辑视图添加自定义成功和错误消息
- node.js - 从 build 文件夹部署到 heroku 后无法从 src 文件夹导入图像
- python - 包含 lambda 表达式的函数背后的机制是什么?(Python)
- selenium - Selenium 没有浏览所有推文
- android - 更新子 Firebase 后刷新 ListView
- swift - 如何使以编程方式添加的 NSTextView 处于活动状态?
- azure - 发布天蓝色功能时找不到名称错误的应用程序
- c# - 在动态计算属性中使用选择未映射的实体框架错误