Pathfinding : programmer les déplacements des personnages
CHAPITRE 9
203
case 4:
Color = Color.Black;
this.type = TileType.Human;
break;
default:
this.type = TileType.Normal;
break;
}
}
}
Enfin, créez une classe dérivée de Tile que vous appelerez Hero. Celle-ci contiendra un
champ msElapsed qui permettra de réguler la vitesse de déplacement du personnage.
L’autre champ est une liste de Tile ; une propriété permet de le définir et vérifie au
passage que la liste de cases transmise n’est pas nulle. Dans la méthode Update(), vous
déplacerez la position du Hero à l’écran, ainsi que sa position sur la carte en fonction de
celles du dernier élément de la liste, puis vous supprimerez ce dernier élément.
La classe Hero représente un élément particulier de la carte
class Hero : Tile
{
int msElapsed = 0;
List walkingList = new List();
public List WalkingList
{
set { if (value != null) walkingList = value; }
}
public Hero(int y, int x, byte type)
: base(y, x, type)
{
}
public void Update(GameTime gameTime)
{
msElapsed += gameTime.ElapsedGameTime.Milliseconds;
if (walkingList.Count != 0)
{
if (msElapsed >= 100)
{
msElapsed = 0;
X = walkingList[walkingList.Count - 1].X;
Y = walkingList[walkingList.Count - 1].Y;
Position = walkingList[walkingList.Count - 1].Position;
walkingList.RemoveAt(walkingList.Count - 1);
}
}
}
}
=Labat FM.book Page 203 Vendredi, 19. juin 2009 4:01 16
Précédent

- 224/366

Suivant