Souci trop de vitesse en C

Fermé
yann - 19 nov. 2009 à 11:51
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 19 nov. 2009 à 12:19
Bonjour,
J'ai un petit problême de vitesse de tracé en C.
J'utilise une fonction pseudo-aléatoire à l'intérieur d'une boucle pour désigner la couleur de mes dessins mais le dessin s'effectue trop vite, mon programme n'a donc pas le temps de charger une nouvelle couleur? Voyez-vous même:

void Dessinejeu(void)
{
int i,j;

for(i=0;i<NL-9;i++)
{

switch (i%2)
{
case 0:
for(j=0;j<NC;j++)
{
couleur();
CanvasDrawArc (panelHandle, PANEL_CANVAS, MakeRect(i*(NP-4),j*NP,NP,NP), 0, 3600, VAL_DRAW_INTERIOR); /*Vous l'aurez compris je programme un petit jeu
}
break;

case 1:

for(j=0;j<NC-1;j++)
{
couleur();
CanvasDrawArc (panelHandle, PANEL_CANVAS, MakeRect(i*(NP-4),(j*NP)+12,NP,NP) ,0,3600,VAL_DRAW_INTERIOR);
}
break;
}
}
}


//Tente de donner une couleur aléatoire à chaque case, basée sur le temps


void couleur(void)
{

int a;
srand((unsigned)time(NULL));

a = ((int)((int)NCOLOR*(float)rand()/(float)RAND_MAX));


switch (a) /*Choix des différentes couleurs
{
case 0:
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,JAUNE);
break;
case 1:
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,ROUGE);
break;
case 2:
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,NOIR);
break;
case 3:
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,VIOLET);
break;
case 4:
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,ROSE);
break;
case 5:
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,BLEU);
break;
case 6 :
SetCtrlAttribute (panelHandle, PANEL_CANVAS,ATTR_PEN_FILL_COLOR,VERT);
break;
}
}
A voir également:

2 réponses

Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
19 nov. 2009 à 12:09
Tu donne une couleur aleatoire en fonction du temps c'est ca ?

si ça va trop vite, fais ton random en fonction d'une autre variable que time() ! :P
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
19 nov. 2009 à 12:19
hello
insère un délai
sleep(1);
0