Bonjour à tous !
Alors voilà un petit moment que je code en language C avec Xcode et depuis peu j'utilise le SDL... J'ai en effet écrit un programme qui me permet à l'aide du clavier, de déplacer une image en appuyant sur les touches correspondante. Seulement, je n'obtiens absolument pas le bon résultat étant donné que j'ai uniquement une page noire. Le problème ne vient pas de mon code étant donné que j'ai essayer de copier coller celui présent sur un autre site internet. Xcode me lance cependant une erreur dans le débuggeur :
[Session started at 2009-02-11 14:55:38 +0100.]
2009-02-11 14:55:39.592 SDL[1817:10b] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
2009-02-11 14:55:39.642 SDL[1817:10b] *** Assertion failure in -[SDL_QuartzWindow setTitle:], /SourceCache/AppKit/AppKit-949.43/AppKit.subproj/NSWindow.m:1935
2009-02-11 14:55:39.643 SDL[1817:10b] Exception raised during posting of notification. Ignored. exception: 'Invalid parameter not satisfying: aString != nil' invoked observer method: '*** -[SDLMain applicationDidFinishLaunching:]' observer: 0x121910 notification name: 'NSApplicationDidFinishLaunchingNotification'
The Debugger has exited due to signal 9 (SIGKILL).The Debugger has exited due to signal 9 (SIGKILL).
Après quelques recherches sur le web, les seules solutions que j'ai trouvé sont que SDL serait maintenant compatible avec Quartz et que il n'y devrait donc pas y avoir de problèmes... Le problème persiste malgrès la dernière version de SDL que j'ai et c'est la raison pour laquelle je fais appel à vous
Voici quand même le code du programme en question :
Merci d'avance de vos réponse
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
57
58
59
60
61
62 #include <stdlib.h> #include <stdio.h> #include<SDL/SDL.h> #include<SDL_image/SDL_image.h> int main(int argc, char *argv[]) { SDL_Surface *ecran = NULL, *zozor = NULL; SDL_Rect positionZozor; SDL_Event event; int continuer = 1; SDL_Init(SDL_INIT_VIDEO); ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); /* Double Buffering */ SDL_WM_SetCaption("Gestion des évènements en SDL", NULL); zozor = SDL_LoadBMP("/Users/coldpe/SDL/build/Debug/zozor.bmp"); SDL_SetColorKey(zozor, SDL_SRCCOLORKEY, SDL_MapRGB(zozor->format, 0, 0, 255)); positionZozor.x = ecran->w / 2 - zozor->w / 2; positionZozor.y = ecran->h / 2 - zozor->h / 2; SDL_EnableKeyRepeat(10, 10); /* Activation de la répétition des touches */ while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_UP: positionZozor.y--; break; case SDLK_DOWN: positionZozor.y++; break; case SDLK_RIGHT: positionZozor.x++; break; case SDLK_LEFT: positionZozor.x--; break; } break; } SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); SDL_BlitSurface(zozor, NULL, ecran, &positionZozor); SDL_Flip(ecran); } SDL_FreeSurface(zozor); SDL_Quit(); return EXIT_SUCCESS; }
Partager