Bonjour a tous.
Je suis un programmateur débutant et la SDL me pose probleme.
Je suis en train de faire moi meme le Mario sokoban du site du 0 et j'ai un probleme.
voici mon code:
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);
SDL_WM_SetCaption("Mario Sokoban", NULL);
SDL_Surface *ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_Surface *Mario = NULL;
SDL_Rect positionMario;
positionMario.x = 0;
positionMario.y = 0;
SDL_Event event;
SDL_EnableKeyRepeat (10, 10);
int continuer = 1;
while(continuer)
{
SDL_WaitEvent(&event);
switch (event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_KEYDOWN:
switch (event.key.keysym.sym)
{
case SDLK_DOWN:
Mario = SDL_LoadBMP("mario_bas.bmp");
SDL_SetColorKey(Mario, SDL_SRCCOLORKEY, SDL_MapRGB(Mario->format, 255, 255, 255));
if(positionMario.y != 449)
positionMario.y++;
break;
case SDLK_RIGHT:
Mario = SDL_LoadBMP("mario_droite");
positionMario.x++;
break;
case SDLK_LEFT:
Mario = SDL_LoadBMP("mario_gauche");
if(positionMario.x != 0)
positionMario.x--;
break;
case SDLK_UP:
Mario = SDL_LoadBMP("mario_haut.bmp");
SDL_SetColorKey(Mario, SDL_SRCCOLORKEY, SDL_MapRGB(Mario->format, 255, 255, 255));
positionMario.y--;
break;
}
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
SDL_BlitSurface(Mario, NULL, ecran, &positionMario);
SDL_Flip(ecran);
}
SDL_FreeSurface(Mario);
SDL_Quit();
return EXIT_SUCCESS;
}
quand je bouge mario vers la droite ou la gauche, il disparait.
Merci de me répondre.