Aidé moi svp

Résolu
iliassh Messages postés 4 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 6 juin 2007 - 3 juin 2007 à 22:02
iliassh Messages postés 4 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 6 juin 2007 - 6 juin 2007 à 19:39
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 [mailto:iliass_ammouti@hotmail.fr 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();
 }

4 réponses

The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
3 juin 2007 à 22:48
Salut,

Deja, commence par gerer une balle qui va rebondir sur tous les murs et sur la raquette, puis ensuite, ajoute des briques, comme un tableau a deux dimensions par exemple, tu auras pas de mal a les dessiner avec les fonctions SDL.
Puis finalement, gere le rebond de la balle sur les briques et la destruction des briques.
La j'ai comme l'impression que tu as juste la base que tu as eu pour ton projet et que tu y as pas du tout touche..
Juste l'affichage donc...

=

Une autruche ne se cuit pas aux petits lardons
3
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
6 juin 2007 à 12:28
Faudrais arrêter de nous soumettre des choses pas faite et dire je dois remettre a tel date
0
iliassh Messages postés 4 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 6 juin 2007
6 juin 2007 à 19:30
je pense que j'ai gere la balle dans mes evenmen et ce que je souhaite de vous monsieur de m'aidé a cree la fonction qui va ajouté les brique qui seront  blité lors que la balle va les touché et si vous pouvez me donner la fonction je vais le gardé come souvenir jamai je l'oubli et bien merci
0
iliassh Messages postés 4 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 6 juin 2007
6 juin 2007 à 19:39
le mieux de prend soin de toi et de dir quelque chose de bien ou de ferme ta bouche monsieur et je t'ajoute le code je le copié ou je le fai ca ce n'est pas ton a fair
0
Rejoignez-nous