|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() WebDesigner/Développeur multimedia Inscription : novembre 2011 Messages : 1 ![]() |
Bonjour à vous,
je suis débutant en c# et XNA. mon premier projet est 2 sprites qui rebondisses partout à l’écran ![]() jusque la facile (enfin pas si facile quand on début j'ai réussi à faire mes collisions sur les bords d’écran. il détecte aussi quand les 2 sprites se percute. mais c'est la ou ça pêche... (avec un rectangle et intersects() ) J'ai besoin de savoir de quel coté le sprite est touché pour le faire partir dans l'autre sens (sans pour autant inversé X & Y) une idée ? |
|
|
10
|
|
|
#2 |
|
Invité régulier
![]() Tali ZorahDéveloppeur Web Inscription : avril 2012 Messages : 3 ![]() |
Même souci
je veux faire reculer mon sprite dans la direction opposé d’où il a été percuté. Je n'ai pas trouvé encore... ![]()
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Tali ZorahDéveloppeur Web Inscription : avril 2012 Messages : 3 ![]() |
J'utilise un Rectangle et Intersects() et des IF pour le comportement des sprites choqué. je n'arrive pas à avoir tout les comportements "naturel" de direction.
Il doit y avoir une autre méthode de détection d'intersection qui donne plus d'information que celui de Intersects() qui retourne un simple bool (True / False). un système qui donnerai par exemple la position X et Y du choc. ce qui permettrait de savoir si le choc c'est fait en haut ou en bas. ou encore à gauche ou a droite. ou peut être même plus précis encore... Cela existe en XNA !? |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 476 ![]() |
Bonjour,
Utiliser Intersects est une bonne idee, mais comme vous avez pu le remarquer cela ne suffit pas. Une fois que vous avez detecte la collision, il faut que vous ajoutiez des tests pour savoir l'emplacement du rectangle par rapport a l'autre. Cela peut etre effectue avec quelques tests. ( Pour ces if, il est conseille de prendre une feuille de papier ) On peut aussi utiliser une technique de detection en se basant sur des rayons. Le rayon etant la direction du sprite, il faudra faire une detection rayon / rectangle pour savoir s'il y a collision et comment reagir. Mais, cette derniere methode est plus lourde. surtout pour de simple sprite.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
|
|
#5 |
|
Inactif
Inscription : novembre 2011 Messages : 110 ![]() |
utilise les centres des rectangles
en pseudo code vectoriel ça donne: vecteur_nouvelleVitesseObjet1 = float_vitesse * normalisation( vecteur_centreObjet1 - vecteur_centreObjet2 ) |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Tali ZorahDéveloppeur Web Inscription : avril 2012 Messages : 3 ![]() |
Bonjour,
Merci à vous deux pour les réponses. Je vais essayer de trouver comment faire cela en XNA
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com