Bonjour à tous,
Je m'amuse un peu en C et j'essaie actuellement de créer un graph en SDL. Tout c'est déroulé comme je le voulais jusqu'à une erreur.
Voici le code :
Il y a deux lignes blanches pour le repère. Quand l'utilisateur appuis sur la flèche du haut, la ligne d'abscisse monte, quand il appuie sur la flèche du bas, la ligne d'abscisse descend. Idem pour l'axe des ordonnées qui se déplace à gauche ou a droite quand l'utilisateur joue avec les fleches gauche et droite.
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 if (event.type == SDL_KEYDOWN) { if (event.key.keysym.sym == SDLK_DOWN) *height = *height + 2; if (event.key.keysym.sym == SDLK_UP) *height = *height - 2; if (event.key.keysym.sym == SDLK_RIGHT) *width = *width + 2; if (event.key.keysym.sym == SDLK_LEFT) *width = *width - 2; } SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0)); draw_line_vertical(ecran, (*width) / 2, 0, *height, SDL_MapRGB(ecran->format, 255, 255, 255)); draw_line_horizontal(ecran, 0, (*height) / 2, *width, SDL_MapRGB(ecran->format, 255, 255 , 255)); SDL_Flip(ecran);
Voici l'erreur qui m'est retournée lorsque je tente de bouger l'axe des ordonnées à gauche ou a droite :
Alors que pour l'axe des abscisses, tout se passe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (MIT-SHM) Minor opcode of failed request: 3 (X_ShmPutImage) Value in failed request: 0x25a Serial number of failed request: 81 Current serial number in output stream: 82
Merci de votre aide !
EDIT : En fait, le problème survient aussi lors du déplacement de l'axe des abscisse. Je pense que les valeurs dépassent l'écran. Mais ce qui me dérange c'est que, alors que pour l'axe des abscisses fonctionne au départ, l'axe des ordonnées crash au moindre mouvement.
EDIT : problème résolu. Ajout de constante et plus rien ne dépasse de l'écran !
Partager