J'ai hésité à mettre les infos, cad les bouts de code correspondants, mais je voulais juste que ceux qui avaient la solution s'intéressent à ma question. Visiblement j'aurais mieux fait de le faire...
Et oui j'ai le feu a lac
Donc voilà le code
void gotoligcol(int lig,int col)
{
// ressources
COORD mycoord;
mycoord.X=lig;
mycoord.Y=col;
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), mycoord );
}
int main()
{
//ressources
int key, time=0;
int *varx1=0;
int *vary1=0;
int *vitnx1=0;
int *vitny1=0;
int *nx1=0;
int *ny1=0;
int *x1=0;
int *y1=0;
menu();
while(0<1)
{
if (kbhit())
{
touche(&varx1,&vary1);//acquisition de la touche préssée par le joueur
}
Sleep(1);//on réexecute l'acquisition toutes les 1 ms, c'est à dire presque tout le temps
time++;
if (time>=1000)//toutes les secondes
{
deplacement(&x1,&y1,&x1,&y1,&varx1,&vary1);//on calcule les nouvelles coordonnées *x1 et *y1
vitesse(&x1,&y1,&x1,&y1,&vitnx1,&vitny1);
time=0;
}
}
return 0;
}
int touche(int *varx1, int *vary1)//*varx1 et *vary1 permettent d'alléger le code en prenant pour chaque case la valeur de la modification de *x1 et *y1
{
int key;
key=getch();//avant l'appel de touche(), on vérifie si une touche a été préssée, si oui key prend la valeur du caractère entré
switch(key)
{
case 'a':
*varx1=-1;
*vary1=-1;
break;
case 'q':
*varx1=-1;
*vary1=0;
break;
case 'w':
*varx1=-1;
*vary1=1;
break;
case 'z':
*varx1=0;
*vary1=-1;
break;
case 'x':
*varx1=0;
*vary1=1;
break;
case 'e':
*varx1=1;
*vary1=-1;
break;
case 'd':
*varx1=1;
*vary1=0;
break;
case 'c':
*varx1=1;
*vary1=1;
case 's':
ralentisseur();
break;
}
}
int deplacement(int *x1, int *y1,int *nx1,int *ny1, int *varx1, int *vary1)
{
//gotoligcol(*x1,*y1);
//printf(" ");
*nx1=*x1+(*varx1);//nx1 prend la valeur x1 + la modification de sa position
*ny1=*y1+(*vary1);//même principe avec y1
//gotoligcol(*nx1,*ny1);//on affiche d'abord la case précédente
//printf("X");//puis la nouvelle position de X
printf("%d %d\n\n",*nx1,*ny1);
}
int vitesse(int *x1, int *y1,int *nx1,int *ny1,int *vitnx1,int *vitny1)
{
*vitnx1=*nx1-*x1;
*vitny1=*ny1-*y1;
printf("%d %d\n\n",*vitnx1,*vitny1);
}