我打算制作一个街机游戏,其中屏幕分为两半。每次玩家开始游戏时,这一半的背景都会有所不同。
我想将我的背景设计成不同的 .sks 文件,然后以编程方式使用 SKReferenceNode 将其中两个随机加载到我的 GameScene 中。
问题是 sks 内容被视为 SKScene,因此显然不能将其添加为我的场景的子项:
class GameScene: SKScene {
override func didMove(to view: SKView) {
let upperBackground = SKReferenceNode(fileNamed: "Caribbeans")!
addChild(upperBackground)
}
}
我想知道是否有办法让编译器将我的 SKReferenceNode 视为 SKSpriteNode,但由于 SKReferenceNode 和 SKSpriteNode 不相关,因此尝试向下转换不起作用。
我知道每当我创建一个更大的 sks 场景、拖动两个 SKReferenceNodes 然后将它们的引用设置为单个背景时它都会起作用,但问题是我想随机选择两个每次都不同的背景,所以我必须找到一种以编程方式而不是通过场景编辑器解决此问题的方法。
有什么建议么?