10. Enumeraciones y Propiedades
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 }
Se utilizaban Flags, típicamente int o char, para indicar qué estado o tipo era. Para el tipo de cartas se podía indicar: int tipoCarta; 0 : Pica 1 : Diamante 2 : Trébol 3 : Corazones
enum : {, … } Sólo puede tener como miembros campos públicos, constantes y estáticos.
enum NumeroCarta: int { as = 1, dos, tres, cuatro, cinco, … jota = 11, quina = 12, kaiser = 13 }
Una variable de tipo enumerado se define igual que cualquier otra variable: ; TipoCarta tipo; NumeroCarta numero;
Para la asignación, se debe asignar a la variable cualquiera de los valores de la enumeración: = ; tipo = TipoCarta.Corazones; Numero = NumeroCarta.kaiser;
Fuente:
Cómo un enemigo decide realizar una acción? Qué lo hace decidir? Podemos definirles estados: Buscar Patrullar Seguir
En un momento determinado estamos en un estado. Si se cumple una condición se salta a otro estado.
Estados básicos del loop de un videojuego.
Estados de acciones de un enemigo.
Es una mezcla entre el concepto de variable y el concepto de método. Externamente es accedida como si de una variable se tratase. Internamente es posible asociar código a ejecutar en cada asignación o lectura de su valor.
{ set { } get { }
En cada lectura se ejecuta el, y en cada escritura a la variable se ejecuta el. get : retorna el valor de la variable asociada a la propiedad. set : cambia el valor de la variable asociada a la propiedad.
En cada lectura se ejecuta el, y en cada escritura a la variable se ejecuta el. get : retorna el valor de la variable asociada a la propiedad. set : cambia el valor de la variable asociada a la propiedad.
public float Velocity { get { return velocity; } set { velocity = value; } } get utiliza return para retornar un valor. set utiliza value para asignar un valor.
Las propiedades también pueden sólo asignar o sólo retornar el valor. public Sprite SpriteBall { get { return sp; } }
Ball ball; ball = new Ball(sm, "balon", 0, 0); ball.SpriteBall.X = 0; ball.SpriteBall.Y = 0; if( ball.Y <= 0) ball.Y = 0;