XCode版本12.4(12D4e(
Functions.swift中的第一个SKScene类包括buildBackground函数,我想在不同的SKScene类别中调用它。
class Functions: SKScene {
func buildBackground(backgroundPath: String){
let texture = SKTexture(imageNamed: backgroundPath)
let background = SKSpriteNode(texture: texture)
background.size = CGSize(width: 512, height: 512)
background.position = CGPoint(x: 0, y: 0)
background.name = "BACKGROUND"
addChild(background)
print("Background loaded")
}
}
我正试图在Room.swift文件中的第二个SKScene类中调用此函数
我在Room中创建了一个Functions的实例,并像这样调用了我的函数:
public class Room: SKScene {
let functions = Functions()
override public func didMove(to view: SKView) {
functions.buildBackground(backgroundPath: "roomBackground")
}
}
我得到了">在作用域中找不到"函数">"在";让函数=函数(("线在运行了一个构建之后,我收到了我的消息";背景加载";,所以我想,函数被调用了,然而,我的壁纸SKSpriteNode并没有出现在我的场景中。在我尝试在Room.swift类中移动buildBackground方法后,一切都正常了,但我的项目中有很多不同的场景(Room1、Room2等(,所以我不想在每个文件中复制粘贴这个方法。
由于要覆盖公共函数,因此可能需要使用self
:
self.functions.buildBackground(...)