public class PersonajeSoko
{
//Mapa de bits que contiene la representacion del personaje y todos sus movimientos
private Bitmap bmp;
//Indice del cuadro segmento actual del bmp que se dibujara
private int cuadroActual;
//area del cuadro que se dibujara
private Rectangle cuadro;
//Estados del personaje
public enum EnEstadosPersonaje
{
caminando,
corriendo,
empujando,
halando,
durmiendo
}
public EnEstadosPersonaje EstadoPersonaje;
public PersonajeSoko ()
{
...
...
}
//Valida si e personaje puede halar o no un cuadro
//y si puede lo hala, sino pos no
public bool Halar( ArrayCuadros)
{
//validaciones
...
...
//si puede halar =>
EstadoPersonaje= EnEstadosPersonaje.halar;
...
...
}
public bool Empujar...
public bool correr...
public bool caminar...
//Operaciones para afectar el estado del personaje de acuerdo
//a la ordenes de teclado, mouse etc...
public bool ProcesarDispositivosEntrada()
{
}
//valida la posicion del personaje de acuerdo al estado en que se
//encuentre y de acuerdo a las caillas (array) que le rodeen
public bool ProcesarPosicion(ArrayCuadros)
{
switch(EstadoPersonaje)
{
case caminar:
.....
break;
case halar:
....
break;
...
...
...
}
}
public bool ProcesarSigCuadro()
{
switch(EstadoPersonaje)
{
case caminar:
if(cuadroActual=0 & cuadroActual<3)
cuadroActual++;
else
cuadroActual = 0;
...
...
break;
case correr:
....
....
}
}
//Dibuja el personaje de acuerdo al estado y posicion procesados
public bool DibujarPersonaje
{
switch(EstadoPersonaje)
{
...
...
}
...
...
...
DibujarCuadroBMP(X,Y,cuadroActual);
}
}