je veux de l'aide pour que j'ajoute a ce jeux une fonction qui permeté d'affiché des brique qui ce seron bliti quand la balle les touche je veux svp qqc m'aiode parceque mon projet il faut que je le rend avnt le 11 juin svp envoyé a moi la correction a ce mail la iliass_ammouti@hotmail.fr
et si vous trouvé des fautes n'esité pas monsieurs et madames de me le corrigé svp svp svp svp svp voila le codes source de mon projet:
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h> /* Inclusion du header de SDL_image */
const int MIN_WIDTH = 0;
const int MAX_WIDTH = 800;
int quit =0;
/*raquette*/
const Sint16 base_velocity = 2;
Sint16 velocity_left = 0;
Sint16 velocity_right = 0;
//Les surfaces
SDL_Surface *screen = NULL;
SDL_Surface *raquette_image=NULL;
SDL_Surface *balle_image=NULL;
SDL_Surface *fond_image=NULL;
//localisation de:
SDL_Rect balle_location;
SDL_Rect raquette_location;
SDL_Rect fond_location;
//evenemen pour jére la raquette et la balle
void process_events(void)
{
SDL_Event event;
Uint8* keystate;
if(SDL_PollEvent(&event));
{
if(event.type == SDL_KEYDOWN)
{
if(event.key.keysym.sym == SDLK_ESCAPE)
{
quit = 1;
}
else if (event.key.keysym.sym == SDLK_SPACE)
{
int ballOnPaddle = 0;
}
}
}
keystate = SDL_GetKeyState(0) ;
velocity_left = (keystate[SDLK_LEFT] ? base_velocity : 0);
velocity_right = (keystate[SDLK_RIGHT] ? base_velocity : 0);
}
int init()
{
//initialisation de tout les sous-systemes de sdl
if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
{
return 1;
}
//on met en place l'ecran
screen = SDL_SetVideoMode( 800, 600, 32, SDL_SWSURFACE );
//Si il y a une erreur lors de la mise en place de l'ecran
if( screen == NULL )
{
return 1;
}
//on met en place la barre caption de la fenetre
SDL_WM_SetCaption( "Casse Brique", NULL );
//si tout s'est bien passé
return 1;
}
void EnsureIsInPlayground(SDL_Rect *location)
{
if(location->x < MIN_WIDTH)
{
(location)->x = MIN_WIDTH;
}
if((location)->x + (location)->w > (MAX_WIDTH))
{
(location)->x = MAX_WIDTH - (location)->w;
}
}
SDL_Surface *load_image(char *filename )
{
//L'image qui est chargée
SDL_Surface *loadedImage = NULL;
//L'image optimisée que nous utiliserons par la suite
SDL_Surface *optimizedImage = NULL;
//Chargement de l'image
loadedImage = IMG_Load (filename) ;
//Si l'image est chargée
if( loadedImage != NULL )
{
//creation de l'image optimisée
optimizedImage = SDL_DisplayFormat(loadedImage );
//liberation de l'ancienne image
SDL_FreeSurface( loadedImage );
//si l'image optimisée créé est bonne
if( optimizedImage != NULL )
{
Uint32 colorkey = SDL_MapRGB( optimizedImage->format, 255, 255, 255);
//on met tout les pixel de couleur R 0, G 0xFF, B 0xFF transparent
SDL_SetColorKey( optimizedImage, SDL_RLEACCEL | SDL_SRCCOLORKEY, colorkey );
}
}
//on retourne l'image optimisé
return optimizedImage;
}
SDL_Rect apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination )
{
//rectangle temporaire
SDL_Rect offset;
offset.x = x;
offset.y = y;
return offset;
}
int load_files()
{
//on charge l'image qu'on va appliquer sur le fond
raquette_image = load_image( "AquaRaquette.png" );
//si l'image se charge mal
if( raquette_image == NULL )
{
return 0;
}
//chargement du background
balle_image = load_image( "AquaBall.png" );
//si le fond ne se charge pas
if( balle_image == NULL )
{
return 0;
}
//chargement du background
fond_image = load_image( "fond.png" );
//si le fond ne se charge pas
if( fond_image == NULL )
{
return 0;
}
return 1;
}
void clean_up()
{
//Liberation des surfaces
SDL_FreeSurface( balle_image );
SDL_FreeSurface( raquette_image );
SDL_FreeSurface( fond_image );
//On quitte SDL
SDL_Quit();
}
int main(int argc, char *argv[])
{
//Initialisation
if( init() == 0 )
{
return 1;
}
//chargement des fichiers
if( load_files() == 0 )
{
return 1;
}
//Application des surfaces sur l'ecran
fond_location=apply_surface( 0, 0, fond_image, screen );
raquette_location=apply_surface( 400, 580, raquette_image, screen );
while(quit==0)
{
process_events();
raquette_location.x += (-velocity_left + velocity_right);
EnsureIsInPlayground(&raquette_location);
SDL_BlitSurface(fond_image, 0, screen, &fond_location);
SDL_BlitSurface(balle_image, 0, screen, &balle_location);
SDL_BlitSurface(raquette_image, 0, screen, &raquette_location);
SDL_Flip(screen);
}
clean_up();
}