Ios 何时使用sceneDidLoad v didMove(查看:)
有人能帮我理解游戏场景中ScenedLoad和didMove(查看:)之间的区别吗?我意识到,一旦场景出现,它就会被调用。初始化场景后,将调用While。因此,它的逻辑顺序是先执行sceneDidLoad,然后再执行didMove(到view:)之后(对吗?) 话虽如此,我尝试使用以下方法创建一个反弹球:Ios 何时使用sceneDidLoad v didMove(查看:),ios,swift,skscene,skview,Ios,Swift,Skscene,Skview,有人能帮我理解游戏场景中ScenedLoad和didMove(查看:)之间的区别吗?我意识到,一旦场景出现,它就会被调用。初始化场景后,将调用While。因此,它的逻辑顺序是先执行sceneDidLoad,然后再执行didMove(到view:)之后(对吗?) 话虽如此,我尝试使用以下方法创建一个反弹球: let borderBody = SKPhysicsBody(edgeLoopFrom: self.frame) self.physicsBody = borderBody
let borderBody = SKPhysicsBody(edgeLoopFrom: self.frame)
self.physicsBody = borderBody
physicsWorld.gravity = CGVector(dx: 0.0, dy: 0.0)
let testBall = SKShapeNode(circleOfRadius: 20)
self.addChild(testBall)
testBall.physicsBody = SKPhysicsBody(circleOfRadius:
testBall.frame.size.width/2)
testBall.physicsBody!.restitution = 1.0
testBall.physicsBody!.friction = 0.0
testBall.physicsBody!.angularDamping = 0.0
testBall.physicsBody!.linearDamping = 0.0
testBall.physicsBody!.applyImpulse(CGVector(dx: 10.0, dy: 10.0))
通过重写sceneDidLoad或didMove,我得到了相同的预期结果。我不明白哪一种是“更聪明”或最佳实践方法,为什么
谢谢
C通话顺序为:
SceneDidLoad和DidMove
SceneDidLoad:在场景初始化或解码或场景行为之后立即调用
在这里,您可以创建实例变量初始化视图和节点。
请注意,不能添加新视图,因为场景尚不知道主视图,但可以将节点添加到场景中
DidMove:在这里,场景知道视图。您还可以构建所有场景和行为
因此,对于性能增益问题,可以在显示场景以供查看之前使用ScenedLoad进行初始化