PDA

Voir la version complète : [PSP][Aide] Supprimer les déplacements en diagonales [résolu]


m3rguez
15/09/2006, 09h22
Salut!
Aujourd'hui je souhaite résoudre mon probleme de déplacement.
Pour le moment mon perso se déplace parfaitement (anim) sauf en diagonales :blink:
Ca m'affiche une alternance d'image :berk: je pense que ça viens du fait que mon sprite est aussi haut que large (45*45) mais je voudrais savoir comment je peux supprimer ces déplacement en diagonales.
J'utilise actuellement ceci :
if (osl_keys->held.down)
{
//deplace le sprite
link->y += 2;
//affiche la ligne dans le spriteset
link_position = BAS;
//anime le sprite
AnimMarche();
}
if (osl_keys->held.up)
{
link->y -= 2;
link_position = HAUT;
AnimMarche();
}
if (osl_keys->held.left)
{
link->x -= 2;
link_position = GAUCHE;
AnimMarche();
}
if (osl_keys->held.right)
{
link->x += 2;
link_position = DROITE;
AnimMarche();
}
Si vous pouvez me renseigner sur le sujet ce serait avec plaisir!:)
Merci!

Dr.Vince
15/09/2006, 11h08
bah en fait ça vient de ton code

tu fait que des if donc si le mec fait une diagonale UP+LEFT tu passe dans le code qui gère le up et le left

il faut donc utiliser des if then else

if (osl_keys->held.down)
{
//deplace le sprite
link->y += 2;
//affiche la ligne dans le spriteset
link_position = BAS;
//anime le sprite
AnimMarche();
}
else if (osl_keys->held.up)
{
link->y -= 2;
link_position = HAUT;
AnimMarche();
}
else if (osl_keys->held.left)
{
link->x -= 2;
link_position = GAUCHE;
AnimMarche();
}
else if (osl_keys->held.right)
{
link->x += 2;
link_position = DROITE;
AnimMarche();
}

m3rguez
15/09/2006, 11h25
Merci Dr.Vince!
Désolé de poser des questions comme ça mais je débute:-' .

Dr.Vince
15/09/2006, 11h39
ne sois pas désolé, le forum est fait pour ça : APPRENDRE !!