gpt4 book ai didi

ios - 何时使用 sceneDidLoad v didMove(查看 :)

转载 作者:搜寻专家 更新时间:2023-10-31 22:41:08 24 4
gpt4 key购买 nike

有人可以帮我理解 GameScene 中 sceneDidLoad 和 didMove(to view:) 之间的区别吗?我意识到 didMove(to view:) 一旦场景出现,就会被调用。同时sceneDidLoad场景初始化后被调用。所以它的逻辑顺序是先是sceneDidLoad,然后是didMove(to view:)(对吧?)

话虽如此,我正在尝试使用以下方法创建一个弹跳球:

    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

最佳答案

调用顺序是:SceneDidLoadDidMove

SceneDidLoad :在场景初始化或解码或场景行为之后立即调用在这里您可以创建实例变量初始化 View 和节点。请注意,您不能添加新 View ,因为场景还不知道主视图,但您可以将节点添加到场景中

DidMove :这里场景知道 View 。您还构建了所有场景和行为。

因此,对于性能增益问题,可以使用 SceneDidLoad 在呈现场景以供查看之前进行初始化。

https://developer.apple.com/documentation/spritekit/skscene/1645216-scenedidload https://developer.apple.com/documentation/spritekit/skscene/1519607-didmove

关于ios - 何时使用 sceneDidLoad v didMove(查看 :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46657320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com