Soucis de SDL

brounchix Messages postés 5 Statut Membre -  
brounchix Messages postés 5 Statut Membre -
Bonjour,

Je suis un débutant en programmation en SDL, et il se trouve que j'ai un soucis quand à la création d'une fenêtre de base, sos Dev C++.

La compilation fonctionne correctement, mais le programme ne se met pas en pause, il s'éxécute et quitte instantanément.

Je voulais afficher un titre ainsi qu'une image de fond, mais du coup je ne sais pas si cela fonctione correctement, en théorie mon code est bon puisqu'il se compile sans érreur. Cela dit, j'ai du manquer quelque chose pour la fonction pause. Je vous laisse le code:

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>

void pause();

int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *imageDeFond = NULL;
SDL_Rect positionFond;

positionFond.x = 0;
positionFond.y = 0;

SDL_Init(SDL_INIT_VIDEO);

SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
SDL_WM_SetCaption("Test", NULL);

imageDeFond = SDL_LoadBMP("Fresh.bmp");
SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);

SDL_Flip(ecran);
pause();

SDL_FreeSurface(imageDeFond);
SDL_Quit();

return EXIT_SUCCESS;
}
void pause()
{
int continuer = 1;
SDL_Event event;

while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
A voir également:

6 réponses

Kelly
 
Ce serait pas system("PAUSE"); qu'il faudrait utiliser?
0
brounchix Messages postés 5 Statut Membre
 
Systeme("PAUSE"); de la même manière que sur la console?
0
Kelly
 
oui je crois, met un system("PAUSE"); la ou tu veux que ton programme fasse une pause, il faudra taper sur une touche pour qu'il se réenclenche
0
brounchix Messages postés 5 Statut Membre
 
Je te remercie pour tes réponses, mais apparement la fonction system("PAUSE"); ne résoud rien, j'ai modifié mon code pour mettre:

SDL_Flip(ecran);
sytem("PAUSE");

SDL_FreeSurface(imageDeFond);
SDL_Quit();

return EXIT_SUCCESS;
}

Sans aucun succès, apres peut-être faut-il que je supprime mon dernier morceau de code, à partir du second Void pause () ou que je place ma fonction system("PAUSE"); autre part...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
legulysse Messages postés 123 Statut Membre 15
 
plop,

Ta variable écran n'est pas initialisée. Essaye en ajoutant ceci à la place de ton setVideoMode :
ecran =  SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
0
brounchix Messages postés 5 Statut Membre
 
Merci beaucoup pour ta réponse, car là était mon probleme et ca fonctionne correctement maintenant, merci.

Je peux prendre ton adresse msn au cas ou j'ai d'autre soucis?
0