También veremos otras opciones que nos ayudarán mucho a la hora de crear juegos. Una de ellas es la de la posibilidad de darlealeatoriedad a los componentes.
Podemos utilizar la función que incorpora Flash Math.random() que devuelve un número pseudo-aleatorio entre 1 y 0.
Su uso es simple sólo deberás escribir:
var miNumero:Number = Math.random();
Puedes comprobarlo probando el siguiente ejemplo:
trace(Math.random()); trace(Math.random()); trace(Math.random()); trace(Math.random());
Es tan útil que a raíz de esta función se ha creado este trozo de código que casi utilizarás en la mayoría de tus películas que contengan componentes aleatorios:
function num_aleatorio (min:Number ,max:Number):Number { return (Math.floor(Math.random()*(max-min+1))+min); }
Esta función te devuelve un número aleatorio dentro de un rango:
var miNumero:Number = num_aleatorio(1, 100);
En este ejemplo se almacenará un número de 1 a 100 en la variable miNumero.
En el juego de ejemplo que estamos viendo hemos utilizado esta función para generar de froma aleatoria desde donde parten los proyectiles, dónde caen, y su escala.
var escala:Number = num_aleatorio(0, 2); //escala influirá en el tamaño y la velocidad this.velocidad = velocidad_base+nivel*1.5+(2-escala); this.width = this.width*((10-escala)/10); this.height = this.height*((10-escala)/10); var puntoSalida:Number = num_aleatorio(this.width/2, ancho-this.width/2); //Zona de salida this.x=puntoSalida; this.y = 0; var puntoImpacto:Number = num_aleatorio(ancho*(1/4), ancho*(3/4));//Zona de impacto
Como ves tenemos randomizados muchos de los procesos. El primer num_aleatorio lo utilizamos para calcular la escala, un valor enre 2 y 0 que influirá en el tamaño del proyectil y su velocidad. El segundo num_aleatorio calcula la posición desde la quer parte el proyectil, y el último num_aleatorio calcula la posición hacia donde se dirije. Además, en el juego la hemos empleado más veces, por ejemplo para decidir si se lanza el proyectil o de que tipo será.
De esta forma hemos logrado que en cada partida los proyectiles aparezcan de forma distina.
Otra de las funciones que te vendrán muy bien es la de dotar de velocidad a los movimientos de los objetos.
Observa el código que hemos introducido en el juego:
this.velocidad = velocidad_base+nivel*1.5+(2-escala);
En la definición de la clase Proyectil, hemos creado una propiedad velocidad que calculamos en función a una velocidad base a la que le sumamos la velocidad que depende del nivel y de la escala del proyectil. De hecho, esa velocidad va aumentando a medida que se van eliminando proyectiles y subiendod e nivel.
De ahí que cuando asignamos el movimiento del elemento:
this.y += this.velocidad;
Lo hacemos refiriéndonos a la velocidad, así podemos variarla en cualquier momento aumentándola o reduciéndola según nuestros propósitos.
Por último veremos algo que nos permitirá mostrar información a los usuarios para que ellos tengan conocimiento de cómo se está desarrollando la partida. Esto lo haremos con los textFields. Los textFields pueden ser elementos que hayamos creado antes de publicar la película, así que no tendremos problemas con ellos. Definimos su aspecto y propiedades en el panel de Propiedades, y utilizando su nombre de instancia, podemos cambiar su contenido dinámicamente de la siguiente manera:
estadisticas_txt.text = "Estas son las estadísticas del juego";
Simplemente los declararemos como texto dinámico e iremos modificando su contenido. Pero, ¿Y si queremos crear un campo de texto mediante ActionScript?
Muy sencillo, te bastarán unas pocas líneas para conseguirlo:
//Creamos el formato var miFormato:TextFormat = new TextFormat(); //Definimos el formato; miFormato.bold = true; miFormato.font = "Arial"; miFormato.size = 12; miFormato.color = 0xFFFFFF; miFormato.align = "left"; //Creamos el campo de texto var estadisticas_txt:TextField = new TextField(); //Definimos la propiedades del campo de texto estadisticas_txt.name = "estadisticas_txt"; estadisticas_txt.defaultTextFormat = miFormato; //asignamos el formato estadisticas_txt.selectable = false; estadisticas_txt.x = 10; estadisticas_txt.y = 0; estadisticas_txt.width = 530; estadisticas_txt.height = 22; estadisticas_txt.text = "Estas son las estadísticas del juego"; //Lo añadimos a la lista de visualización addChild(estadisticas_txt);
En nuestro ejemplo, por comodidad no creamos todo el campo de texto desde el código.
Puedes ver que hemos creado un objeto llamado miFormato que es del tipo formato de texto, con unas características básicas que podremos aplicar sobre cualquier texto de nuestra película. Luego mediante hemso creado otro objeto estadisticas_txt del tipo campo de texto, que será el que mostrará el texto..
Ahora sólo hará falta remitirse a la propiedad text del texto que hemos creado para darle un valor, y como gemos visto antes.
Las propiedades de formato de texto que hemos utilizado son las más comunes, si necesitas un listado completo de ellas puedes visitar la sección avanzada de AulaClic.com.
Fuente: AulaClic.com
0 comentarios:
Publicar un comentario
*Respeta la opinión de los demás, cualquier comentario que contenga insultos o burlas será eliminado.
*No des publicidad, ni nombres confusos, escribe claro y que se entienda tu punto.
*Si no te gusta la publicación comenta para mejorar, pero no ofendas a nadie.
Si no cumples con lo dicho anteriormente tus comentarios serán eliminados.