我是 SpriteKit / iOS 开发者的超级菜鸟,如果这是一个愚蠢的问题,我深表歉意。
我想做的是在 SwiftUI 视图中展示一个小游戏。一切都很完美,除了出于某种原因,我的 GameScene 类中的 update() 函数根本不起作用。
精灵仍会像往常一样动画和移动,但我无法向它们添加任何进一步的逻辑。
例如,下面永远不会打印出'hello world':
class GameScene: SKScene
{
let loam = Loam() //little sprite character class
//sets up scene
override func didMove(to view: SKView)
{
let skView = view
//loads game scene
let scene = SKScene(size: skView.bounds.size)
scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
scene.backgroundColor = UIColor(red: 0.9412, green: 0.8274, blue: 0.7372,alpha: 0.5)
scene.addChild(loam.loam)
skView.presentScene(scene)
}
//called before each frame is rendered
override func update(_ currentTime: TimeInterval)
{
print("hello world")
}
}
我使用 update() 错了吗? SwiftUI 的 SpriteView 和 SKScene 之间是否存在某种冲突?
编辑:我发现删除
skView.presentScene(scene)
允许 update() 工作-但它不会渲染任何精灵/动画。