Upload
leonardo-balasco
View
11
Download
1
Embed Size (px)
Citation preview
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 : Pica1 : Diamante2 : Trébol3 : Corazones
enum <nombreEnumeración> : <tipoBase>{
<literal_1>,<literal_2>,…<literal_n>
}
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:
<nombreTipo> <nombreVariable>;
TipoCarta tipo;NumeroCarta numero;
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;
Fuente: http://xnacommunity.codeplex.com/Wiki/View.aspx?title=IA_maqestados&referringTitle=Noticias
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.
<tipoPropiedad> <nombrePropiedad>{
set{
<códigoEscritura>}
get{
<códigoLectura>}
}
En cada lectura se ejecuta el <codigoLectura>, y en cada escritura a la variable se ejecuta el <codigoEscritura>.
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 <codigoLectura>, y en cada escritura a la variable se ejecuta el <codigoEscritura>.
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;