gpt4 book ai didi

来自自定义类的 Swift addChild

转载 作者:行者123 更新时间:2023-11-28 10:07:40 26 4
gpt4 key购买 nike

我有一个问题。

我制作了 swift 自定义类 test.swift 并想将此类中的 Sprite 添加到 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()

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

如果我直接在 GameScene 中复制该函数,它就会起作用。

谁能帮我解决我做错了什么?

非常感谢

最佳答案

我会像这样重构类:

import SpriteKit

class test: SKSpriteNode {
convenience init(n: String) {
self.init(imageNamed: n)
self.name="sparkle4"
self.setScale(8)
self.zPosition=2
}

override init(texture: SKTexture!, color: UIColor, size: CGSize) {
super.init(texture: texture, color: color, size: size)
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

这样您就可以更轻松地创建其他实例。然后在 GameScene.swift 中,执行:

let mySprite = test(n: "spark3")
mySprite.position = CGPoint(x: frame.midX, y: frame.midY)
self.scene?.addChild(mysprite)

你得到一个错误,因为 scene 在你的函数中是 nil,因此它不能被添加到任何场景。

关于来自自定义类的 Swift addChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51656485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com