Bonjour,
Sous OS X El Capitan, j'ai voulu m'initier à la bibliothèque SDL 2 en C grâce au cours : Installation et configuration de la SDL2. Mais problème dès la vérification du code :
Lorsque j'exécute le code (avec la fonction SDL_Delay) qu'on nous demande de copier-coller, je n'ai aucune erreur d'indiquée, le programme se lance correctement et dur bien 3 secondes, mais la fenêtre ne s'affiche pas à l'écran...
En revanche, j'ai copier coller la fonction "pause" qu'on peut trouver sur un autre site, et là la fenêtre s'affiche comme prévu.
Code avec la fonction SDL_Delay :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include <SDL2/SDL.h> #include <stdio.h> int main(int argc, char** argv) { /* Initialisation simple */ if (SDL_Init(SDL_INIT_VIDEO) != 0 ) { fprintf(stdout,"Échec de l'initialisation de la SDL (%s)\n",SDL_GetError()); return -1; } { /* Création de la fenêtre */ SDL_Window* pWindow = NULL; pWindow = SDL_CreateWindow("Ma première application SDL2",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN); if( pWindow ) { SDL_Delay(3000); /* Attendre trois secondes, que l'utilisateur voit la fenêtre */ SDL_DestroyWindow(pWindow); } else { fprintf(stderr,"Erreur de création de la fenêtre: %s\n",SDL_GetError()); } } SDL_Quit(); return 0; }
Code sans la fonction SDL_Delay :
Même si il y a une solution à ce petit problème, j'aimerais bien savoir utiliser SDL_Delay...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 #include <SDL2/SDL.h> #include <stdio.h> void paus() { int continuer = 1; SDL_Event event; while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; } } } int main(int argc, char** argv) { /* Initialisation simple */ if (SDL_Init(SDL_INIT_VIDEO) != 0 ) { fprintf(stdout,"Échec de l'initialisation de la SDL (%s)\n",SDL_GetError()); return -1; } { /* Création de la fenêtre */ SDL_Window* pWindow = NULL; pWindow = SDL_CreateWindow("Ma première application SDL2",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN); if( pWindow ) { paus(); /*Appelle de la fonction pause - SDL_Delay(3000); */ SDL_DestroyWindow(pWindow); } else { fprintf(stderr,"Erreur de création de la fenêtre: %s\n",SDL_GetError()); } } SDL_Quit(); return 0; }
Merci d'avance !
Partager