programación gráfica manejo de estados. modelación con estados. ¿por qué nos interesa modelar...

Post on 06-Jan-2015

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programación Gráfica

Manejo de Estados

Modelación con estados.• ¿Por qué nos interesa modelar el videojuego

basándonos en estados?

• Porque es más intuitivo trabajar así.• Porque las acciones que realiza un personaje se pueden

modelar con estados.• Porque las diversas pantallas en el videojuego pueden

modelarse con estados.• Porque es más sencillo al momento de programar.

Switch• Usado cuando se tiene un

número finito de valores para una variable.

• Típicamente usado para el diseño de menús.

• Típicamente usado para el manejo de estados. (usando enum)

switch(tecla){

case W:protagonista->MoverUp();break;

case A:protagonista->MoverLeft();break;

case D:protagonista->MoverRight();break;

case S:protagonista->MoverDown();break;

case ESPACE:protagonista->Disparar()break;

case ESC:continuar = false;break;

default:break;

}

Enum• Es un tipo de estructura en la que los literales de los

valores que pueden tomar sus objetos se indican explícitamente al definirlas.

enum TipoCarta

{

Pica,

Diamante,

Trébol,

Corazones

};

Uso de enumeraciones

• Una variable de tipo enumerado se define igual que cualquier otra variable:

<nombreTipo> <nombreVariable>;

TipoCarta tipo;

NumeroCarta numero;

Uso de enumeraciones

• Para la asignación, se debe asignar a la variable cualquiera de los valores de la enumeración:

<nombreVariable> = <valor_nombreTipo>;

tipo = TipoCarta.Corazones;

Numero = NumeroCarta.kaiser;

Máquinas de Estados.

Fuente: http://xnacommunity.codeplex.com/Wiki/View.aspx?title=IA_maqestados&referringTitle=Noticias

Principios

• Cómo un enemigo decide realizar una acción?• Qué lo hace decidir?

• Podemos definirles estados:– Buscar– Patrullar– Seguir

Máquinas de estados finitos

Máquinas de estados finitos

• En un momento determinado estamos en un estado.

• Si se cumple una condición se salta a otro estado.

Máquinas de estados finitos

Estados básicos del loop de un videojuego.

Máquinas de estados finitos

Estados de acciones de un enemigo.

Movimiento del Protagonista.

Movimientos

• Según la asignación del INPUT (teclado, mouse, etc.) se deben asignar movimientos a los diversas acciones que puede hacer el protagonista.

Movimiento de una nave• ¿ Qué movimientos puede hacer una nave ?

Movimiento de una naveenum MovType

{

MOV_NONE,

MOV_UP,

MOV_RIGHT,

MOV_LEFT,

MOV_DOWN

};

Movimiento de una nave• ¿ Y las diagonales ?

Movimiento de una naveenum MovType

{

MOV_NONE,

MOV_UP,

MOV_RIGHT,

MOV_LEFT,

MOV_DOWN,

MOV_UP_RIGHT,

MOV_UP_LEFT,

MOV_DOWN_RIGHT,

MOV_DOWN_LEFT

};

Cambio de Estado

• Por lo general, para los movimientos se puede pasar de un estado a otro.

• Las excepciones surgen cuando se construyen movimientos con la unión de otros movimientos:– Movimientos Diagonales.– Poderes Especiales.

Cambio de Estado

Cambio de Estado

Mover la nave

• Vemos en qué estado estamos con un switch y realizamos dicha acción.

top related