Tupale

Logica basica para crear videojuegos en flash

Aquí estoy de nuevo con otro tutorial de flash, esta vez explicando a grandes rasgos la lógica básica para crear vídeo-juegos con flash CS3 de lo que mas adelante haré un curso como lo estoy haciendo con este “Crear sitio web dinámico con PHP y MySQL paso a paso“.

Aquí solo explicare dos elementos básico que son, el movimiento de un objeto por ele escenario usando las teclas de dirección y el modo de uso del tiempo y el empleo del tiempo para llamar eventos en el escenario. Y como ya se debe imaginar deben tener algunos conocimientos del uso de flash, al menos saber que son los fotogramas, símbolos y que es el Action Script 2.

Manejar el tiempo en un vídeo juego en flash.

Aunque muchos puedan decir que debe usarse una función time yo prefiero crear mi propia variable con el sistema de conteo de tiempo para poder manipular los eventos a mi antojo, y aquí explicare como lo hago.

lo primero que hago es ir al primer fotograma en la primera escena y en una nueva capa llamada “acciones” coloco el nombre de la variable y detengo la película. Sin embargo lo realmente importante es definir la variable de tiempo.

_root.tiempo = 1;
stop();

De manera que ahora tenemos una variable (_root.tiempo) a la que asignamos el valor 1. lo que haremos ahora es crear un símbolo (clip de película) en el escenario y le asignaremos el siguiente código.

onClipEvent(enterFrame) {
_root.tiempo += 0.04;
_root.caja = Math.round(_root.tiempo);
if(_root.caja>7) {
_root.nextFrame()
}
}

tiempo en flash 1

tiempo en flash 1

Bien ahora paso a explicar lo que es, primero tenemos la definición de onClipEvent(enterFrame) que se refiere a la ejecución del código cada vez que se llama el objeto que posee la función en el escenario. Luego le digo que sume la cantidad 0.04 a la variable tiempo (_root.tiempo) la razon de porque es 0.04 es porque he decidido que mi pelicula correrá a 25 FPS (fotogramas por segundo) por lo tanto para tener un tiempo que corre en segundo simplemente tomo la unidad y la divido por la la cantidad de fotogramas por segundo (1/25FPS = 0.04), así sabre cuanto debo sumar a la variable para que el tiempo transcurra en segundos.

Luego defino una nueva variable a la que llame caja (_root.caja) y a esta le asigno el valor de tiempo (_root.tiempo) pero la redondeo con la función Math.round() para que el valor siempre corra en segundos enteros y no en decimales.

Y finalmente usamos una condicional para llamar un evento, simplemente diciéndole !Si caja es mayor que 7 debe ir al siguiente fotograma.

No se si ya lo notaron pero aquí esta la mecánica básica del manejo del tiempo para vídeo juegos en flash, ahora solo deben cambiar las condicionales por los que ustedes necesiten y cambiar los efectos para que en lugar de cambiar de fotograma, pueda hacer muchas cosas mas.

Mover objeto usando las teclas de direccion

Para esto simplemente vamos a agregar un código muy simple dentro del onClipEvent(enterFrame) que es el siguiente:

if (Key.isDown(Key.UP)) {
this._y -= 5;
}
if (Key.isDown(Key.DOWN)) {
this._y += 5;
}
if (Key.isDown(Key.RIGHT)) {
this._x += 5;
}
if (Key.isDown(Key.LEFT)) {
this._x -= 5;
}

En el código anterior solo le asignamos un cambio de posición sobre un eje al objeto al presionar la tecla si la tecla arriba (Key.UP) esta presionada entonces la posición _y de este objeto (this) se reducirá en 5 y asi sucesivamente con todas las direcciones.

En el próximo tutorial veremos el el evento Hit que es parte de la base de los vídeo juegos ya que esta es la que detecta la colisión entre dos objetos. bueno espero que les haya gustado y hasta la próxima.

Deja un comentario

A %d blogueros les gusta esto: