J'ai une balle que vous soufflez avec de l'air. Je veux que la balle soit plus soufflée si elle est proche de la soufflante et qu'elle soit moins soufflée si elle est plus éloignée de la soufflante. J'utilise box2d et j'utilise la fonction impulse. "Body-> ApplyLinearImpulse (force, body-> GetPosition())". Je n'arrive pas à trouver une formule ou un moyen d'y parvenir. Si je veux que la balle atteigne une distance totale de 300 pixels, comment pourrais-je accomplir cela? S'il vous plaît aider.Combien de pixels est une impulsion dans box2d?
Répondre
Je ne suis pas un expert en boîte 2d mais ce que je ferais est de créer une petite boîte qui est réellement invisible et laisser la balle frapper la boîte ... si le souffleur souffle plus je donnerais plus de vitesse à la boîte direction opposée. En ce qui concerne la longueur de 300 pixels est concerné, vous devez ajuster les forces et la vitesse de telle sorte que la balle va
300/<your_rendering_window_to_physics_world_ratio>
dans le monde physique.
Si vous souhaitez calculer la distance avant la simulation, vous devez regarder les sources box2d. Lors de la simulation de la vitesse du corps est modifié en fonction de la gravité, les forces supplémentaires appliquées, l'amortissement linéaire, l'amortissement angulaire et éventuellement quelque chose de plus. La vitesse dépend également des itérations de vitesse.
Mais je pense que si vous voulez un mouvement vraiment lisse (comme d'un coup), vous feriez mieux d'utiliser la fonction applyForce au lieu de l'impulsion. Mais assurez-vous que vous appliquez la force à chaque étape de la simulation.
EDIT:
Vous pouvez également simuler la résistance à l'air: Fa = -k * V * V. J'ai simulé des mouvements dans le tuyau de cette façon. J'ai bien travaillé.
Ainsi, chaque étape, vous pouvez faire quelque chose comme ceci:
BlowForce = k1/distance; // k1 - coefficient
Resistance = -k2 * V * V; //k2 - another coefficient
TotalForce = BlowForce + Resistance;
body->ApplyForce(TotalForce);
Force = masse * accélération, prenez donc la masse que vous définissez votre corps, calculer l'accélération que vous voulez (souvenez-vous de diviser 300px par PTM_RATIO) puis multipliez les deux ensemble.
incorrect. Si votre corps a une accélération constante, il ne s'arrêtera pas. La vitesse sera changée comme v = a * t. L'exemple de ce que sera la gravité: accélération = 9.8. – Andrew
- 1. Box2D obtenir une impulsion de collision SANS b2ContactListener
- 2. Comment appliquer une impulsion à un objet SANS box2d libgdx
- 3. Conversion des degrés de rotation en impulsion Box2D
- 4. calculer impulsion box2d pour un certain angle d'impact
- 5. De combien de pixels un espace est-il égal?
- 6. android combien de pixels entre 2 points
- 7. Système de coordonnées Box2d vs Pixels affichage de la rétine
- 8. Mouvement erratique du corps lors de l'application d'une impulsion (Cocos2d-Box2d)
- 9. Box2d, Cocos2D - Le même corps, la même impulsion, mais un effet différent
- 10. Relation entre les dimensions d'un corps et les pixels dans box2d iphone
- 11. iPhone 4 images: combien de pixels par pouce?
- 12. BulletPhysic: contacts force/impulsion
- 13. C#: impulsion et attente
- 14. son est le gel de la cocos2d/scène box2d
- 15. portage impulsion audio sur Android
- 16. Box2d Collision. objet est déformé
- 17. comment créer une barre de navigation comme impulsion app android
- 18. Y a-t-il une nouvelle largeur de page Web standard? Combien de pixels?
- 19. Combien de fois une propriété est-elle appliquée dans SPARQL?
- 20. Combien de clé primaire est possible dans une table?
- 21. Combien de temps une application est utilisée dans BlackBerry
- 22. Box2d Problème d'écouteur de contact As3
- 23. Comment puis-je tracer une ligne droite et savoir combien de temps la ligne est en pixels?
- 24. 1: 1 Affichage dans Box2D? (Flash AS3)
- 25. défilement infini dans iScroll4 ou amélioration de l'inertie/impulsion
- 26. Comment est-ce que j'applique une force à un corps dans la direction où il se déplace (Box2D)?
- 27. Comment "rendre" une scène Box2D sur iPhone
- 28. Combien de NSTimers est trop?
- 29. détection de collision dans Box2D
- 30. Créer une bombe - Cocos2d/Box2d
voir ma modification s'il vous plaît – Andrew