Salut tout le monde!
j'expose donc mon souci
pour l'instant mon programme affiche une image en fond d'ecran
et bizarement cette image est bien chargé et n'apparait pas
par contre quand je clique au bout de la troisième fois pour fermer ma fenete le fond d'ecran apparait ,je suis dans l'impasse si quelq"un pouvais m'aider =) merci d'avence.
#include <cstdlib>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL.h>
#include <iostream>
using namespace std;
bool Initialisation();
void Plateau();
void Pause();
void Affichage();
int const largeur = 600;
int const hauteur = 600;
SDL_Surface *fd, *x, *o, *screen;
int main ( int argc, char** argv )
{
SDL_Init( SDL_INIT_VIDEO);
SDL_Event event;
int done =0;
// initialize SDL video
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
cout << "Probleme d initialisation" << SDL_GetError() << endl;
Pause();
}
// create a new window
screen = SDL_SetVideoMode(largeur,hauteur, 16,SDL_HWSURFACE|SDL_DOUBLEBUF);
SDL_WM_SetCaption("Morpion Version 1.0", NULL);
Initialisation();
Affichage();
//Boucle generale
while(!done)
{
//Traiter les evenements
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
done=1;
break;
case SDL_KEYUP:
if(event.key.keysym.sym==SDLK_a)
done=1;
break;
default:
break;
}
}
// finally, update the screen :)
SDL_Flip(screen);
} // end main loop
// free loaded bitmap
SDL_FreeSurface(screen);
// all is well ;)
printf("Exited cleanly\n");
SDL_Quit();
return 0;
}
bool Initialisation()
{
fd = NULL;
x = NULL;
o = NULL;
//pour fd
if(!fd == NULL)
{
SDL_FreeSurface(fd), fd = NULL;
}
if(fd == NULL)
{
cout<< "Probleme de chargement du fond d ecran" << endl;
Pause();
}
//pour x
if(!x == NULL)
{
SDL_FreeSurface(x), x = NULL;
}
if(x == NULL)
{
cout<< "Probleme de chargement de l image de x" << endl;
Pause();
}
//pour o
if(!o == NULL)
{
SDL_FreeSurface(o), o = NULL;
}
if(o == NULL)
{
cout<< "Probleme de chargement de l image de o" << endl;
Pause();
}
x = SDL_LoadBMP("x.bmp");
o = SDL_LoadBMP("o.bmp");
fd = SDL_LoadBMP("fd.bmp");
}
void Plateau()
{
int Plateau[3][3];
int i,j;
for ( i=0;i<3;i++)
for ( j=0;j<3;j++)
Plateau[i][j] = 0;
}
void Pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
void Affichage()
{
SDL_Rect r = {0};
SDL_BlitSurface(fd,NULL,screen,&r);
}