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

23
Programación Gráfica Manejo de Estados

Upload: chuy-candelario

Post on 06-Jan-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Programación Gráfica

Manejo de Estados

Page 2: 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

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.

Page 3: 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

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;

}

Page 4: 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

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

};

Page 5: 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

Uso de enumeraciones

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

<nombreTipo> <nombreVariable>;

TipoCarta tipo;

NumeroCarta numero;

Page 6: 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

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;

Page 7: 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

Máquinas de Estados.

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

Page 8: 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

Principios

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

• Podemos definirles estados:– Buscar– Patrullar– Seguir

Page 9: 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

Máquinas de estados finitos

Page 10: 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

Máquinas de estados finitos

• En un momento determinado estamos en un estado.

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

Page 11: 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

Máquinas de estados finitos

Estados básicos del loop de un videojuego.

Page 12: 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

Máquinas de estados finitos

Estados de acciones de un enemigo.

Page 13: 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

Movimiento del Protagonista.

Page 14: 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

Movimientos

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

Page 15: 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

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

Page 16: 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

Movimiento de una naveenum MovType

{

MOV_NONE,

MOV_UP,

MOV_RIGHT,

MOV_LEFT,

MOV_DOWN

};

Page 17: 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

Movimiento de una nave• ¿ Y las diagonales ?

Page 18: 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

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

};

Page 19: 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

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.

Page 20: 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

Cambio de Estado

Page 21: 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

Cambio de Estado

Page 22: 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

Mover la nave

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

Page 23: 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