Bonjour à tous,
Je viens demander un petit coup de main =)
Le souci est qu'une fonction perso qui est sensée afficher un carré de 2 pixels de large sur mon écran ne fonctionne pas (pas d'erreur de compil, les pixels n'apparaissent juste pas).....
Je vous donne les infos utiles de mon code:
mon main:
structures et fonctions:
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 SDL_Init( SDL_INIT_VIDEO ); SDL_Surface* screen=NULL; screen = SDL_SetVideoMode(402, 402, 32,SDL_HWSURFACE|SDL_DOUBLEBUF); SDL_WM_SetCaption("Tron",NULL); SDL_FillRect(screen,NULL,SDL_MapRGB(screen->format,0,0,0)); // initialisation des valeurs FILE* fichier = NULL; fichier = fopen("config.txt","r"); rewind(fichier); int nb=fgetc(fichier); int i=1; struct couleur couleur[nb]; //nb est compris entre 2 et 8 inclus. for (i=0; i<=nb-1; i++) { if (i=0){couleur[i].r=255;couleur[i].g=0;couleur[i].b=0;} if (i=1){couleur[i].r=0;couleur[i].g=255;couleur[i].b=0;} if (i=2){couleur[i].r=0;couleur[i].g=0;couleur[i].b=255;} if (i=3){couleur[i].r=255;couleur[i].g=255;couleur[i].b=0;} if (i=4){couleur[i].r=255;couleur[i].g=128;couleur[i].b=65;} if (i=5){couleur[i].r=65;couleur[i].g=255;couleur[i].b=255;} if (i=6){couleur[i].r=255;couleur[i].g=65;couleur[i].b=255;} if (i=7){couleur[i].r=190;couleur[i].g=190;couleur[i].b=190;} } struct coo coo[nb]; for (i=0; i<=nb-1; i++) { if (i=0){coo[i].x=101;coo[i].y=201;} if (i=1){coo[i].x=301;coo[i].y=201;} if (i=2){coo[i].x=201;coo[i].y=101;} if (i=3){coo[i].x=201;coo[i].y=301;} if (i=4){coo[i].x=151;coo[i].y=151;} if (i=5){coo[i].x=151;coo[i].y=251;} if (i=6){coo[i].x=251;coo[i].y=151;} if (i=7){coo[i].x=251;coo[i].y=251;} pixelOn(coo[i],couleur[i],screen); } pixelOn(coo[0],couleur[0],screen); SDL_Flip(screen); pause(); SDL_Quit(); printf("Exited cleanly\n");
Voili voilou. Récap' sur l'erreur:
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 struct coo { int x; // Abscisses int y; // Ordonnées }; struct couleur { int r; int g; int b; }; void pixelOn(struct coo coor, struct couleur coul, struct SDL_Surface *screen) { SDL_Surface *aire=NULL; SDL_Rect position; position.x=coor.x; position.y=coor.y; aire=SDL_CreateRGBSurface(SDL_HWSURFACE,2,2,32,0,0,0,0); SDL_FillRect(aire,NULL,SDL_MapRGB(aire->format,coul.r,coul.g,coul.b)); SDL_BlitSurface(aire,NULL,screen,&position); SDL_FreeSurface(aire); }
-Le programme compile
-PixelOn n'a pas l'air de jouer son rôle
-PixelOn fonctionne si je lui balance des structures qui ne proviennent pas d'un tableau.
Merci d'avance, zominym.
Partager