2012-04-15 4 views
0

juste pour le problème principal, puisque dans box2d l'objet va automatiquement tomber au fond, alors je veux créer mon objet volant et rester avec la même hauteur.faire voler mon objet dans box2d AS3.0

et voici mon code que je suis arrivé de certains web:

gravityOffset.Multiply(-body.GetMass()); 
body.ApplyForce(gravityOffset, body.GetWorldCenter()); 

mon objet est voler, mais sa mouche ressors et jamais en arrière comme une fusée.

i modifié le code comme ceci:

gravityOffset.x = 0; 
gravityOffset.y = 0; 
body.ApplyForce(gravityOffset, body.GetWorldCenter()); 

mais son voler encore lentement ..

et lorsque le temps de vol est terminée, je veux le faire tomber à nouveau. quelqu'un peut vous aider?

Répondre

0

Si vous voulez simplement tirer une roquette dans l'air et l'ont redescendre ensuite:

body.ApplyImpulse(velocity,body.GetWorldCenter()); 

Cependant, si vous souhaitent avoir plus de contrôle sur la fusée, plutôt que le feu et d'oublier ensuite devient un peu plus difficile. Cela étant le cas, j'utiliserais probablement steering behaviours et j'utiliserai la fonction de recherche pour le déplacer vers un vecteur (vous pouvez continuer à déplacer ce vecteur là où il faut pour que la fusée le suive).

+0

le mouvement que je veux est comme ça. L'objet vient de se déplacer vers la droite, et aussi je veux ajouter un nuage, donc j'ai besoin de code pour faire en sorte que ce nuage ne soit pas tombé .. http://imageshack.us/f/837/30162489.jpg/ –

+0

alors la fusée suit la trajectoire bleue? et le nuage suit la trajectoire verte? – Allan

+0

la condition est le corps suivre le bleu, mais ce que je veux, c'est suivre le vert. après essayer beaucoup une autre méthode, je l'utilise. gravityOffset.y = -body.GetLinearVelocity(). Y; body.ApplyForce (gravityOffset, body.GetWorldCenter()); alors que gravityOffset est b2vec2 variable et ses travaux, et maintenant je dois le faire tomber avec la même vitesse/force que la vitesse pendant qu'il monte .. une suggestion? –

Questions connexes