obtenir la position de nœud après calcul de la physique scenekit
travail sur une application scenekit, j'ai 2 boîtes qui peuvent tirer les uns aux autres pour les points. Tel est le calcul de la position où les tirs doivent être faits pour la première boîte:
shot1 = SCNNode()
shot1.geometry = SCNSphere(radius: 0.5)
shot1.physicsBody = SCNPhysicsBody.dynamic()
shot1.position = SCNVector3Make
(boxNode1.position.x,
boxNode1.position.y + 1,
boxNode1.position.z - 1)
scnScene.rootNode.addChildNode(shot1)
Et pour la deuxième case:
shot2 = SCNNode()
shot2.geometry = SCNSphere(radius: 0.5)
shot2.physicsBody = SCNPhysicsBody.dynamic()
shot2.position = SCNVector3Make
(boxNode2.position.x,
boxNode2.position.y + 1,
boxNode2.position.z + 1)
scnScene.rootNode.addChileNode(shot2)
Chaque coup est faite juste en bonne position et est jeté à l'autre boîte avec l'application de force sur son physicsBody comme impulsion.
Pour la mise en œuvre tactile I utilisé touchesBegan pour rechercher des touches, puis si le contact a le HitResult, je tirer des coups comme je l'ai décrit ci-dessus. Le problème se produit où: Si le tir par exemple shot1 a frappé boxNode2, le boxNode2 est déplacé vers l'arrière comme je l'attends et cette fois si je tire un coup avec boxNode2, la position de départ de shot2 N'EST PAS à NEW boxNode2 comme je l'attends, et commence à tirer là où il était au début!
Alors, comment puis-je tirer des coups de nouvelle position des boxNodes?
homme Merci, ça marche vraiment! Maintenant, j'ai besoin de trouver un moyen d'analyser la modification de l'angle d'impulsion si le tir a provoqué la rotation de la boîte sur l'axe y. – FarhaD