Bonjour
je suis entrain de faire un casse brique,seulement je ne sais pas comment implémenter intersection de la balle avec la barre
Bonjour
je suis entrain de faire un casse brique,seulement je ne sais pas comment implémenter intersection de la balle avec la barre
ben moi non plus, mais peu etre que si tu expliquer comment tu gere la posistion de la bare et le mouvemet de la balle?? on pourrai de donner quelque chose de plus adequoit pour ton cas.
et l'intersection avec les brique, ca peut pas t'aidee ou c'est pas encore fais.
En gros, on pourrait imaginer que quand l'ordonnée la plus basse de la balle passe en dessous de l'ordonnée la plus haute de la barre et que l'abscisse de ta balle est dans l'intervalle de celles qui définissent ta barre, alors il y a contact et tu renvoies la balle dans l'autre sens. ( avec une déviation alpha)
Pour permettre une bonne évolution si tu change la forme de la barre ou de la balle, tu devrais utiliser le concept de boite englobante. Fais une classe BoundedBox définissant des rectangles du style:
Et en définissant un membre BoundedBox dans tes classes Balle et Barre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class BoundedBox { private: float x1,y1;//coordonnees du coin haut gauche float x2,y2;//coordonnees du coin bas droite };
EDIT: si ta balle est déjà un rectangle et qu'elle ne changera pas. Oublies tout ça
Deux manières assez similaires de voir les choses :
- Soit tu raisonnes d'un point de vue global, et tu définis des « frontières » rectangulaires au sein desquels tes objets se trouvent (balle, raquette, etc.). Là, tu n'as besoin que de vérifier si des rectangles se chevauchent, ce qui est relativement facile ;
- Soit, tu considères la balle et la raquette en particulier. Sachant que cette dernière ne se déplace que vers la droite ou la gauche, elle reste sur la même ligne. Tu regardes donc si ta balle est sur le point de franchir la ligne en question (en descente) et si c'est le cas, tu vérifies si les bords de la raquette se trouvent de part et d'autre de la balle.
Quand tu as vérifié çà, tu sais si la balle est oui ou non sur la raquette, et tu n'as pas besoin d'aller voir si c'est le cas graphiquement, à l'écran.
Que ce soit en 2D ou en 3D, voici comment on gère les collisions :
- Soit tu testes pour tous les autres objets de la scène si ton objet est en collision avec
- Soit tu utilises un index spatial pour ne pas avoir à tout tester.
Après, il est possible que ce soit plus facile dans certains cas.
Ne pas oublier la variable temps....
Le franchissement pouvant avoir lieu entre deux occurences de la gestion de la physique...
Mais bon... l'intersection entre un cercle mobile dans le temps à trajectoire rectiligne et un rectangle qui ne peut bouger qu'horizontalement, ça se limite à un test de collision statique entre une capsule et un rectangle, qu'on peut trouver facilement sur google
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager