SKScene didMove查看莫名跑了两次

问题描述

我希望有人能告诉我为什么会发生这种情况以及如何解决。在 SwiftUI ContentView 中,我使用 SpriteView() 来呈现 SKScene。

struct ContentView: View {
    @Environment(\.presentationMode) var presentationMode
    @EnvironmentObject var appData : AppData
    @ObservedObject var viewModel = ViewModel()
    
    var gameScene: SKScene {
        let scene = GameScene(size: CGSize(width: UIScreen.main.bounds.width,height: UIScreen.main.bounds.height))
        scene.viewModel = self.viewModel
        scene.scaleMode = .aspectFill
        return scene
        }
    
    var summaryScene: SKScene {
        let scene = SummaryScene(size: CGSize(width: UIScreen.main.bounds.width,height: UIScreen.main.bounds.height))
        scene.viewModel = self.viewModel
        scene.scaleMode = .aspectFill
        return scene
        }
 
var body: some View { 
    ZStack{  
        GeometryReader { geometry in
            SpriteView( scene:  chooseScene(for: viewModel.complete))
                .frame(width: geometry.size.width,height: geometry.size.height)
            }
            .edgesIgnoringSafeArea(.all)
        VStack{
...
           }
       }
   }
func chooseScene(for complete: Bool) -> {
    complete ? summaryScene : gameScene
}

GameScene中的相关代码如下:

class GameScene: SKScene { 
...
override func didMove(to view: SKView) {
        print("did move to view")
        backgroundColor = UIColor(red: 30 / 255,green: 32 / 255,blue: 53 / 255,alpha: 1.0)
        layoutScene()
        startCounter()
    }

打印语句告诉我 didMove(to view) 被调用了两次,它导致屏幕上非常短暂的闪烁。否则,事情运行正常。 我调用 SKScene 的方式有明显的问题吗?还是我应该到别处寻找原因?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...