leptitced13
Messages postés15Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention31 mai 2009
-
29 mai 2009 à 20:46
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 2013
-
3 juin 2009 à 11:04
Bonjour a tous !
Voila j'ai fait une fonction que je souhaite appeler dans mon main... Je compile: aucune erreur
Mais lorsque je run, il y a une erreur. Le .exe a cessé de fonctionner, windows cherche une erreur,
et sur la console ils me mettent "Process returned <-1073741819>"..
Je ne vois pas du tout d'où peut provenir l'erreur puisque le code "semble" correcte...
Que faire??
lectpe
Messages postés162Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention17 juillet 20103 31 mai 2009 à 00:22
Tu as bien tout mis dans l'ordre, c'est-à-dire déclaré l'écran avant de blitter quelquechose dessus ?
Essaie de mettre des Flip(screen) après chaque apply_surface()...
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 17, 206, 112));
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type) /* Test du type d'évènement */
{
case SDL_QUIT: /* Si c'est un évènement de type "Quitter" */
continuer = 0;
break;
default:
initavcdouble(screen,1,0,0);
break;
}
SDL_Flip( screen );
}
leptitced13
Messages postés15Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention31 mai 2009 31 mai 2009 à 10:46
il se passe toujours rien a part le fond vert ...
attends regarde un peu mon initavcdouble (...) sa vient peut etre de la
void initavcdouble(SDL_Surface *screen,unsigned int i,unsigned int x,unsigned int y)
{
SDL_Surface *dpion = NULL;
srand(time(NULL));
for(i=1;i<=4;i++)
{
do
{
solution[i]=rand()%9;
}
while (solution[i]=0);
switch (solution[i])
{
case '1':
dpion = load_image("pion beige.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '2':
dpion = load_image("pion bleu clair.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '3':
dpion = load_image("pion rose.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '4':
dpion = load_image("pion vert.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '5':
dpion = load_image("pion vert clair.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '6':
dpion = load_image("pion bleu.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '7':
dpion = load_image("pion marron.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
case '8':
dpion = load_image("pion rouge.bmp");
apply_surface(30,40,dpion,screen,x,y);
SDL_Flip( screen );
break;
default : break;
}
x = x+50;
}
}
leptitced13
Messages postés15Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention31 mai 2009 31 mai 2009 à 12:06
le probleme semble ne pas venir de là...
que ce soit en "unsigned int avec case1" ou en "unsigned char avec case '1' ", on passe toujours uniquement par le default
leptitced13
Messages postés15Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention31 mai 2009 31 mai 2009 à 12:13
par contre desomais au moindre mouvement de souris, les couleurs changent... Or je veux qu'elles changent une seule fois pendant l'execution du programme
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 3 juin 2009 à 09:21
Salut
Juste une petite chose sur ce bout de code:
do
{
solution[i]=rand()%9;
}
while (solution[i]=0);
[../auteur/LECTPE/1204123.aspx lectpe] t'a dis quelque de complètement faut: le while attend une condition. La tu lui donnes une affectation... C'est comme si tu remplaçais le code plus haut par cela: solution[i]=0;
do
{
solution[i]=rand()%9;
}
while (solution[i]==0); est correcte ou plus simplement solution[i]=rand%8+1;
Pour le reste, je n'ai pas regardé.
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 3 juin 2009 à 10:14
Ben non, absolument pas. A chaque itération, tu as 9 chances sur 10 de sortir de la boucle...
La puissance de la boucle while c'est justement de faire des comparaisons et surtout pas des affectations.
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 3 juin 2009 à 10:32
Je te conseil de lire quelque livre sur la programmation parce que tu as quelques lacunes.
Une boucle while en anglais correspond à une boucle tant que en français.
Donc on reste dans la boucle tant que solution[i] est égale à 0 ce qui est loin de faire une boucle infinie.
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr