question SDL pour moi
:
j´aimerais savoir comment on peut faire des collisions avec la balle su un mur ba gauche ou a droite parce que je fais un jeu de casse briques
voici mon code de la fonction jouer :
void Jouer(SDL_Surface* Ecran)
{
SDL_Surface *Barre[3] = {NULL};
SDL_Surface *Balle = NULL, *Brique = NULL, *Mur = NULL;
SDL_Rect PositionBarreG, PositionBarreD, PositionBarreC, PositionObjet;
SDL_Event Jouer;
int Continuer = 1;
int TempsPrecedent = 0, TempsActuel = 0;
PositionBarreG.x = 300;
PositionBarreG.y = 580;
PositionBarreC.x = 325;
PositionBarreC.y = 580;
PositionBarreD.x = 344;
PositionBarreD.y = 580;
PositionObjet.x = PositionBarreC.x;
PositionObjet.y = 570;
Barre[GAUCHE] = IMG_Load("raqGauche.png");
Barre[CENTRE] = IMG_Load("raqCentre.png");
Barre[DROITE] = IMG_Load("raqDroite.png");
Balle = IMG_Load("balle.png");
SDL_ShowCursor(SDL_DISABLE);
SDL_EnableKeyRepeat(1, 0);
while (Continuer)
{
SDL_PollEvent(&Jouer);
switch(Jouer.type)
{
case SDL_QUIT:
Continuer = 0;
break;
case SDL_KEYDOWN:
switch(Jouer.key.keysym.sym)
{
case SDLK_ESCAPE:
Continuer = 0;
break;
case SDLK_LEFT:
PositionBarreG.x--;
PositionBarreC.x--;
PositionBarreD.x--;
break;
case SDLK_RIGHT:
PositionBarreG.x++;
PositionBarreC.x++;
PositionBarreD.x++;
break;
}
break;
}
TempsActuel = SDL_GetTicks();
if (TempsActuel - TempsPrecedent > 30)
{
PositionObjet.x++;
PositionObjet.y--;
TempsPrecedent = TempsActuel;
}
else
{
SDL_Delay(30 - (TempsActuel - TempsPrecedent));
}
SDL_FillRect(Ecran, NULL, SDL_MapRGB(Ecran->format, 0, 0, 0));
SDL_BlitSurface(Barre[GAUCHE], NULL, Ecran, &PositionBarreG);
SDL_BlitSurface(Barre[CENTRE], NULL, Ecran, &PositionBarreC);
SDL_BlitSurface(Barre[DROITE], NULL, Ecran, &PositionBarreD);
SDL_BlitSurface(Balle, NULL, Ecran, &PositionObjet);
SDL_Flip(Ecran);
}
SDL_FreeSurface(Barre[GAUCHE]);
SDL_FreeSurface(Barre[CENTRE]);
SDL_FreeSurface(Barre[DROITE]);
SDL_FreeSurface(Balle);
SDL_FreeSurface(Brique);
SDL_FreeSurface(Mur);
}
Merci beaucoup 