2017-10-10 5 views
2

Quelqu'un peut-il m'aider s'il vous plaît à comprendre la différence entre sceneDidLoad et didMove (pour voir :) dans un GameScene? Je me rends compte que didMove(to view:) est appelée une fois la scène présentée. Tandis que sceneDidLoad est appelée une fois la scène initialisée. Ainsi, l'ordre logique est sceneDidLoad d'abord, puis didMove (voir :) à plus tard (à droite)Quand utiliser sceneDidLoad v didMove (pour voir :)

Cela dit, je suis en train de créer une balle qui rebondit en utilisant les éléments suivants:

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)) 

En redéfinissant soit sceneDidLoad OU didMove, j'ai le même résultat. Je ne comprends pas quelle est la méthode la plus intelligente ou la meilleure et pourquoi?

Merci!

C

Répondre

0

L'ordre d'appel est: SceneDidLoad et DidMove

SceneDidLoad: est appelée juste après l'initialisation de la scène ou le décodage ou le comportement de la scène ici Vous pouvez créer votre variables d'instance vues initialisées et nœuds. attention vous ne pouvez pas ajouter de nouveaux points de vue parce que la scène ne connaît pas la vue principale encore mais vous pouvez ajouter vos noeuds sur la scène

DidMove: ici la scène connaît la vue. vous construisez également toutes vos scènes et le comportement. Par conséquent, pour des problèmes de gain de performance, SceneDidLoad peut être utilisé pour initialiser les choses avant que la scène ne soit présentée.

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