J'ai créé une simulation numérique très simple qui modélise un objet projeté à partir d'un bâtiment à un certain angle, et lorsque l'objet heurte le sol, la simulation s'arrête. Maintenant, je veux ajouter à la détection de collision. Comment ferais-je cela? Je sais que je dois trouver l'heure exacte à laquelle l'objet (une balle) frappe le sol, ainsi que la vitesse dans les directions x et y, et la position de l'objet quand il touche le sol, et je dois ajouter paramètres qui indiquent combien la balle rebondira lors de l'impact. Mais je ne sais pas comment faire ça. Je sais qu'il y a plusieurs façons de détecter une collision, mais comme je suis nouveau dans ce domaine, la méthode la plus compréhensible serait la meilleure.Détection de collision en mouvement 2D
Répondre
Créez un système de coordonnées avec la masse à y = 0. Suivre les coordonnées de la balle à mesure qu'elle vole et ensuite vérifier quand il a y = 0, et c'est là qu'il frappe le sol. Vous pouvez également suivre la vitesse x et y lorsque la balle se déplace.
Utiliser Physique skillz. This est un bon tutoriel. Si vous l'avez, je recommande Fundamentals of Physics de Halliday, Resnick et Walker. Ils ont un très bon chapitre à ce sujet.
La détection de collision implique simplement la détermination de la distance entre deux objets.
Si vous ne souhaitez que des collisions entre les objets et le sol, vous pouvez utiliser:
if(object.y <= ground.y) {
//collision occurred
}
Pour faire des collisions entre les objets, vous pouvez parcourir tous les objets et de les comparer les uns aux autres de la même manière .
Ce que je ne comprends pas, c'est comment implémenter la collision réelle. Que dois-je faire lorsqu'une collision se produit? – kachilous
@kachilous Vous pouvez absorber l'énergie de sorte que l'objet colle sur le sol. Vous pouvez faire "rebondir" l'objet à la moitié de la vitesse à laquelle il arrivait au sol. Il n'y a pas de bonne réponse à cette question - cela dépend de la complexité du rendu (un moteur physique de classe mondiale!), De la rapidité (pour le rendu en temps réel comme dans les jeux) et du temps précieux de votre vie vous êtes prêt à gaspiller. (Il y a des moteurs de physique super-libres "gratuits" - Havok, Bullet, etc.) –
Si vous êtes juste à la recherche de la mathématique, que vous pourriez écrire le code C pour. J'ai trouvé celui-ci utile. Math Models
- 1. Détection de collision 2D XNA
- 2. Détection de collision Cocos 2D
- 3. Détection de collision 2D entre rectangles
- 4. détection androïde 2d collision arc
- 5. Détection de collision Slick2D - Mouvement étrange
- 6. Détection 2D Collision de rectangle dans Android
- 7. mouvement de jeu équitable 2d arbitrage de collision
- 8. JAVA: Aventure en 2D. Problème de détection de collision
- 9. jeu 2D de détection de collision en mosaïque
- 10. Bloquer le mouvement en collision
- 11. simple problème de collision 2d
- 12. 2D Collision (renvoie le côté en collision)
- 13. Simulation 2D de collision de corps (détection de collision rapide pour un grand nombre de balles)
- 14. Détection de collision dans 2D Slick pour Java
- 15. Détection de collision et réponse de collision
- 16. Détection de collision dans un Platformer 2D vectoriel
- 17. Java 2D Collision
- 18. Détection de collision 2D ne fonctionne pas XNA C#
- 19. Détection de collision en java?
- 20. Opinions sur les objets de détection de collision avec une scène en mouvement
- 21. détection de collision avec beaucoup d'objets
- 22. 2D problèmes de collision
- 23. BabylonJS: Détection de collision
- 24. Corona - Détection de collision
- 25. Box2D détection de collision?
- 26. gameQuery détection de collision
- 27. animation avec détection de collision?
- 28. Simulation du mouvement en 2D
- 29. GameQuery détection de collision
- 30. Détection de collision XNA
[Wham!] (Http://www.gamasutra.com/view/feature/3015/pool_hall_lessons_fast_accurate_.php) (Ce lien démontre une méthode rapide, précise et "facile" pour détecter les collisions.) –
2D, pas 1D, mouvement. –
Il existe des formules simples pour trouver toutes ces informations, à moins que vous ne soyez * requis * pour le simuler, vous devriez probablement juste les regarder. Stat en calculant la [vitesse] (http://en.wikipedia.org/wiki/Velocity) et partir de là. – meagar