Mot :    Pseudo :           
 

Bonjour,je programme en c++ et j'ai un pb voila mon code:

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <SDL/SDL.h>
  4. #include <SDL/SDL_image.h>
  5. void pause();
  6. int main(int argc, char *argv[])
  7. {
  8.     SDL_Surface *ecran = NULL, *gg = NULL, *pp = NULL, *jj = NULL;
  9.     SDL_Rect positiongg, positionpp, positionjj;
  10.     SDL_Event event;
  11.     int continuer = 1;
  12.     int i=0;
  13.    
  14.     positionjj.x = 1;
  15.     positionjj.y = 1;
  16.     jj = SDL_LoadBMP("mur.bmp" );
  17.     SDL_SetColorKey(jj, SDL_SRCCOLORKEY, SDL_MapRGB(jj->format, 0, 0, 255));
  18.     SDL_BlitSurface(jj, NULL, ecran, &positionjj);
  19.     SDL_Surface  ** Lesimages[]={ &gg, &pp, NULL};
  20.     SDL_Init(SDL_INIT_VIDEO);
  21.     ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
  22.     SDL_WM_SetCaption("mon premier jeu", NULL);
  23.     gg = SDL_LoadBMP("dbz1.bmp" );
  24.     SDL_SetColorKey(gg, SDL_SRCCOLORKEY, SDL_MapRGB(gg->format, 0, 0, 255));
  25.    
  26. pp = SDL_LoadBMP("dbz2.bmp" );
  27. SDL_SetColorKey(pp, SDL_SRCCOLORKEY, SDL_MapRGB(pp->format, 0, 0, 255));
  28.     /* On centre Zozor à l'écran */
  29.     positiongg.x = ecran->w / 2 - gg->w / 2;
  30.     positiongg.y = ecran->h / 2 - gg->h / 2;
  31.     positionpp.x = ecran->w / 2 - pp->w / 2;
  32.     positionpp.y = ecran->h / 2 - pp->h / 2;
  33.     while (continuer)
  34.     {
  35.         SDL_WaitEvent(&event);
  36.         switch(event.type)
  37.         {
  38.             case SDL_QUIT:
  39.                 continuer = 0;
  40.                 break;
  41.             case SDL_KEYDOWN:
  42.                 switch(event.key.keysym.sym)
  43.                 {
  44.                     case SDLK_RIGHT: // Flèche droite
  45.                         positiongg.x++;/* je pense que tout se passe ici*/
  46.                         break;
  47.                     case SDLK_o: //touche o
  48.                             i++;
  49.                             if(i>1)/*Si i est plus grand que 1 (donc qu'il n'a pas d'image allouée puisque le tableau va jusque 2 images(0, 1)), mettre i à 0, donc à la 1ère image*/
  50.                             {
  51.                             i=0;
  52.                             }
  53.                             positiongg.x++;
  54.                             break;
  55.                 }
  56.                 break;
  57.         }
  58. SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); /* On efface l'écran */
  59. SDL_BlitSurface(*Lesimages[i], NULL, ecran, &positiongg); /* On place la nouvelle image */
  60. SDL_Flip(ecran); /* On met à jour l'affichage */
  61. }
  62.     pause();
  63.    
  64.     SDL_FreeSurface(jj);
  65.     SDL_FreeSurface(gg);
  66.     SDL_FreeSurface(pp);
  67.     SDL_Quit();
  68.     return EXIT_SUCCESS;
  69. }
  70. void pause()
  71. {
  72.     int continuer = 1;
  73.     SDL_Event event;
  74.     while (continuer)
  75.     {
  76.         SDL_WaitEvent(&event);
  77.         switch(event.type)
  78.         {
  79.             case SDL_QUIT:
  80.                 continuer = 0;
  81.         }
  82.     }
  83. }


et l'image "mur" ne s'affiche pas est ce normale?
sinon aidez moi a l'afficher svp.
Merci.
Lucbu

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

la phrase je pense que tout se passe ici ne veut rien dire dans ce probleme

Répondre à lucbu
Tom's Guide > Forum > Programmation > c++
Aller à :

Il y a 2635 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens