je rencontre un PROBLÈME de collision dans mon programme, en effet j'aimerais qu'il y est une collision entre une particule , et un carré, or pour l'instant la particule traverse le carré .
for(int i =0; i < a.n; i++) { color(rand()%255 , rand()%255,rand()%255 ,255); // qui va permettre de générer aléatoirement des couleurs circleFill(a.parts[i].pos.a, a.parts[i].pos.b, 15);//15 = taille des boules } color(38,196,236); }
void update(World &a, carre& C) { for(int i = 0; i < a.n; i++) { partUpdatePV(a.parts[i]); if(abs(a.parts[i].pos.b-C.VV.b)<1 && abs(a.parts[i].pos.a-C.VV.a)<9) { C.score= C.score+1; } }
}
void init(World &a) { srand(time(NULL)); a.n = 1; for(int i = 0; i < a.n; i++) { a.parts[i].pos.a = DIMW/2; //j'ai diviser la taille de la fenetre en abscisse par deux pour que la balle s'affiche au milieu dès le lancement du programme a.parts[i].pos.b = 0; //j'ai mis 0 pour que la balle soit tout en bat (en gros 0 en ordonné) a.parts[i].speed.a = 0; a.parts[i].speed.b = 0; a.parts[i].force.a = 0; a.parts[i].force.b = 0;//a 0 le balle de rebondi plus à chaque depp ,lacement a.parts[i].mass = 1; } }
void CollisionPartETCarre(particle& part, carre c) {
}
void jump(World &a)
{ int i; if (isKeyPressed(SDLK_SPACE)) { a.parts[i].speed.b = frand(0,8); } if (isKeyPressed(SDLK_LEFT)) { a.parts[i].pos.a=a.parts[i].pos.a - 10; a.parts[i].pos.b=0; // a.parts[i].speed.a = - 0.5; //permet de faire bouger la boule a gauche fluidement au lieu qu'elle ne saute // a.parts[i].speed.b = 1; //ca le fais sauter } if (isKeyPressed(SDLK_RIGHT))
{ a.parts[i].pos.a=a.parts[i].pos.a + 10; a.parts[i].pos.b=0; //a.parts[i].speed.a = 0.5;//permet de faire bouger la boule a droite fluidement au lieu qu'elle ne saute // a.parts[i].speed.b = 1; //ca le fais sauter } }
Je viens de voir que les balises de code sont revenues donc il n'y a plus d'excuses pour ne pas les utiliser . A part ça, pas besoin de crier 'HELP' dans le titre de ton post, tout le monde voit ton message et tu n'obtiendras pas de traitement de faveur en criant plus fort que les autres.
Sinon, tu prétend recontrer un problème (c'est à dire que tu essaie de faire quelque chose mais qu'un obstacle t'empêche d'atteindre ton objectif), pourtant, ta fonction
void CollisionPartETCarre(particle& part, carre c)
{
}
est vide et en plus tu ne l'appelle nulle part dans ton code.
Tu veux qu'on fasse ton boulot à ta place ?
Bon allez, je suis de bonne humeur, je vais te donner le bout de code qui te permettra de détecter la collision :
Fais un choix entre l'anglais et le français pour tes classes.
Prend des noms de variables et de méthodes plus clair (partUpdatePV ?, carre.VV ?).
Mets des commentaires utiles, principalement des en-têtes de méthodes et de classes/structures.
Contrôle le temps dans ta simulation; choisis une durée de temps pour chaque frame et met à jours les éléments de ta simulation en fonction de cette durée.
- Edité par Raynobrak 15 avril 2019 à 11:05:07
HELLLLPPPP !!! problème de collision
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.