1 pièce(s) jointe(s)
Objets qui se suivent en SDL
Bonjour je suis en train de coder un snake et je me confronte au problème suivant lorsque je change rapidement de direction ( voir l'image).
Pièce jointe 155116
Pourtant j'utilise une fonction qui ,pour déplacer chaque parties du corps, récupère les positions de la parties précédentes. Voici la dite fonction :
Code:
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| for(int unsigned i = 1; i < coordonneePosition.size(); i++)
{
switch(direction)
{
case 0:
if(coordonneePosition[i].y > coordonneePosition[i-1].y)
{
coordonneePosition[i].y--;
}
if(coordonneePosition[i].y < coordonneePosition[i-1].y)
{
coordonneePosition[i].y++;
}
if(coordonneePosition[i].y == coordonneePosition[i-1].y)
{
coordonneePosition[i].x = coordonneePosition[i-1].x + 25;
}
break;
case 1:
if(coordonneePosition[i].y > coordonneePosition[i-1].y)
{
coordonneePosition[i].y--;
}
if(coordonneePosition[i].y < coordonneePosition[i-1].y)
{
coordonneePosition[i].y++;
}
if(coordonneePosition[i].y == coordonneePosition[i-1].y)
{
coordonneePosition[i].x = coordonneePosition[i-1].x - 25;
}
break;
case 2:
if(coordonneePosition[i].x > coordonneePosition[i-1].x)
{
coordonneePosition[i].x--;
}
if(coordonneePosition[i].x < coordonneePosition[i-1].x)
{
coordonneePosition[i].x++;
}
if(coordonneePosition[i].x == coordonneePosition[i-1].x)
{
coordonneePosition[i].y = coordonneePosition[i-1].y + 25;
}
break;
case 3:
if(coordonneePosition[i].x > coordonneePosition[i-1].x)
{
coordonneePosition[i].x--;
}
if(coordonneePosition[i].x < coordonneePosition[i-1].x)
{
coordonneePosition[i].x++;
}
if(coordonneePosition[i].x == coordonneePosition[i-1].x)
{
coordonneePosition[i].y = coordonneePosition[i-1].y - 25;
}
break;
}
} |
Pouvez vous m'indiquez l'erreur de mon idée ??
D'avance merci.