Crear Un Juego Flash de Tipo Arcade

29
Crear un juego flash de tipo arcade. por Julio Laguna - redribera 1 Introduccion y descripción del problema. 1.1 Introducción. 1.2 A quien va dirigido este tutorial. 1.3 Descripción de nuestro juego. 2 La escena en movimiento. 2.1 El uso de sprites. 2.2 Componer los movimientos y animaciones del protagonista en Flash 2.2 Continuación... 2.2 Continuación... 2.3 Simular el movimiento sobre el fondo. 2.4 Añadir un enemigo a nuestro juego. 2.5 Enemigo en acción. 2.6 Disparo y detección de colisiones. 2.7 Comentarios finales. 1 Introduccion y descripción del problema. 1.1 Introducción. En este tutorial, vamos a intentar explicar como crear un sencillo juego en Flash. Se trata de un juego, al mas puro estilo arcade, en el que veremos como crear sencillas animaciones mediante el uso de sprites y funciones en Flash para sincronizar los movimientos mas habituales. En concreto veremos como definir los movimientos de un personaje principal y de un único enemigo. También la forma en la que el escenario sobre el que se desenvuelve la trama, esta sincronizado con los movimientos tanto del personaje como de los enemigos. No se trata de un juego completo, de hecho, no hemos tenido en cuenta un sistema de puntuacón, aunque en el desarrollo de nuestro juego sería muy fácil de implementar, y además solo veremos el movimiento de un enemigo y como este dispara un arma. También trataremos el tema de las colisiones entre clips de película, que en este caso nos valdrán para detectar las colisiones entre los disparos de nuestro enemigo y el personaje principal. De todos modos el tema de las colisiones, va mas allá del uso que nosotros le vamos a dar y pude ser muy útil en el desarrollo de cualquier otro tipo de juego con Flash.

Transcript of Crear Un Juego Flash de Tipo Arcade

Page 1: Crear Un Juego Flash de Tipo Arcade

Crear un juego flash de tipo arcade.por Julio Laguna - redribera

1 Introduccion y descripción del problema.

    1.1 Introducción.

    1.2 A quien va dirigido este tutorial.

    1.3 Descripción de nuestro juego.2 La escena en movimiento.

    2.1 El uso de sprites.

    2.2 Componer los movimientos y animaciones del protagonista en Flash

    2.2 Continuación...

    2.2 Continuación...

    2.3 Simular el movimiento sobre el fondo.

    2.4 Añadir un enemigo a nuestro juego.

    2.5 Enemigo en acción.

    2.6 Disparo y detección de colisiones.

    2.7 Comentarios finales.

1 Introduccion y descripción del problema.

1.1 Introducción.

En este tutorial, vamos a intentar explicar como crear un sencillo juego en Flash.

Se trata de un juego, al mas puro estilo arcade, en el que veremos como crear sencillas

animaciones mediante el uso de sprites y funciones en Flash para sincronizar los movimientos

mas habituales.

En concreto veremos como definir los movimientos de un personaje principal y de un único

enemigo. También la forma en la que el escenario sobre el que se desenvuelve la trama, esta

sincronizado con los movimientos tanto del personaje como de los enemigos.

No se trata de un juego completo, de hecho, no hemos tenido en cuenta un sistema de

puntuacón, aunque en el desarrollo de nuestro juego sería muy fácil de implementar, y además

solo veremos el movimiento de un enemigo y como este dispara un arma.

También trataremos el tema de las colisiones entre clips de película, que en este caso nos

valdrán para detectar las colisiones entre los disparos de nuestro enemigo y el personaje

principal. De todos modos el tema de las colisiones, va mas allá del uso que nosotros le vamos

a dar y pude ser muy útil en el desarrollo de cualquier otro tipo de juego con Flash.

Bajo estas líneas, encontrareís el desarrollo finalizado del fichero Flash (para la versión de

Flash 8 y superiores) con el juego que vamos a desarrollar. Tan solo es necesario pulsar el

botón empezar y utilizar los cursores para manejar nuestro protagonista.

El juego en si carece de muchas opciones y por supuesto de mucho mas contenido, pero

creemos que con los conceptos que vamos a explicar, el lector será capaz de desarrollar

multitud de contenidos para crear sus propios juegos.

Por su puesto, el desarrollo de un juego, requiere de muchas horas de dedicación, así como

una buena planificación del mismo, y sin olvidarnos de la creatividad que el mismo tenga. Es

Page 2: Crear Un Juego Flash de Tipo Arcade

así que juegos con un desarrollo tanto gráfico como de programación importante, no consiguen

llegar a una audiencia buena, incluso me permitiría decir, que ni siquiera a divertir. Por ello la

creatividad y correcta planificación en el desarrollo, son dos factores que deben ir juntos de la

mano en el proceso de desarrollo del juego.

En nuestro caso, hemos desarrollado este juego, con fines puramente educativos, y nuestra

experiencia en el desarrollo profesional de juegos, es prácticamente nula. Aun así estimamos

que las técnicas utilizadas por nosotros pueden ser de interés a una audiencia de lectores que

pretendan iniciarse en este tipo de desarrollos.

Descarga del archivo .fla

Nota: Es necesario Flash Player 8 o superior para la correcta visualización de los

ejemplos del tutorial. Desde esta misma página en la parte izquierda de navegación hay un

enlace a la página de descargas de Flash Player de Adobe.

1.2 A quien va dirigido este tutorial.

Este tutorial está dirigido, a aquellas personas que tengan interés en el desarrollo de juegos en

Flash, y que no tengan una noción avanzada en este tema. Los métodos utilizados (uso de

sprites y otros), son de sobra conocidos por las personas que tienen una experiencia en el

mundo del desarrollo de juegos.

Aún así este tutorial pretende centrarse en estos aspectos en conjunto con su aplicación

utilizando Macromedia Flash 8, plataforma en la que el desarrollo de juegos se ha convertido

en muy popular, sobre todo enfocado a juegos en Internet (online). El lector debiera estar

familiarizado aunque solo fuera en el manejo básico de Flash, creación de películas y manejo

básico.

Así mismo el tutorial asume que el lector tiene un conocimiento del lenguaje ActionScript

(lenguaje de programación en Flash).

De todos modos el uso que haremos de ActionScript tampoco es excesivamente complejo,

con lo que entendemos, que un lector sin experiencia puede usar este tutorial, cuanto menos

como una guia de iniciación al mismo, ya que en el desarrollo del juego se utilizan las

estructuras mas comunes del lenguaje, sin entrar en estructuras mas complejas como las

clases que definen objetos.

El equipo de redribera, no tiene tampoco inconveniente en dar el soporte necesario dentro de

Page 3: Crear Un Juego Flash de Tipo Arcade

nuestros foros o en los comentarios para este tutorial, a los cuales podeís acceder a traves del

menú situado a la izquierda en esta misma página.

Esperamos que el tutorial sea del agrado del lector.

1.3 Descripción de nuestro juego.

Vamos a incluir este apartado en este capítulo de introducción, para tener una visión global de

los objetivos o acciones que va a implementar nuestro juego. Esto es así para que el lector

tenga una visión de los objetivos que pretendemos, antes de iniciarse en el desarrollo técnico

del mismo.

Por supuesto, para nosotros estos objetivos están claros, una vez hemos finalizado nuestro

desarrollo, pero esto no será tan obvio cuando estemos empezando con un desarrollo nuevo, y

lo normal es que a lo largo del tiempo del desarrollo, estos objetivos vayan cambiando. Aún así

creemos que hará mas comprensible la lectura.

Nuestro juego, inicialmente va a consistir en un personaje:

protagonista

Este personaje, será el protagonista principal, cuyo control lo decidiremos los jugadores

mediante las teclas de cursor. Flecha arriba, abajo, izquierda y derecha.

Con estas teclas podremos realizar las siguientes acciones:

Movernos hacia la izquierda - flecha izquierda. Movernos hacia la derecha - flecha derecha.

Saltar hacia arriba (en dirección) - flecha arriba.

Detener a nuestro personaje - flecha abajo.

Por otro lado, nuestro personaje va a tener que lidiar contra un típico enemigo al mas puro estilo arcade. Su enemigo será este personaje:

enemigo que disparará sin cuartel contra nuestro protagonista, y este, deberá esquivar sus

Page 4: Crear Un Juego Flash de Tipo Arcade

disparos utilizando su potente salto.Nuestro enemigo, vendrá a por nosotros montado en su flamante camión:

Por otro lado, tendremos la escena (o vulgarmente conocido como nivel en los arcade.), donde

transcurrirá esta persecución entre nuestros personajes.

Por simplicidad (que luego veremos) y porque es un sistema de de niveles bastante habitual,

nuestro nivel, deberá ser infinito, es decir que nunca se acabe, ni cuando andamos hacia la

izquierda, ni cuando andamos hacia la derecha. En realidad es algo similar a los dibujos

animados antiguos, con un fondo reversible, podemos generar una escena continua en la que

se repite el fondo por el que pasamos, sin que sea demasiado perceptible para el usuario (ni

importante en el juego).

Aquí voy a dejar un enlace hacia el fondo que utilizaremos como nivel de la escena.

Fondo para utilizar en el nivel de la escena de nuestro juego.

El objetivo de nuestro juego, va a ser muy sencillo, esquivar las rafagas de metralla que nuestro

enemigo nos disparará montado en su camión.

El enemigo, aparecerá en la escena de vez en cuando y nos disparará metralla, que solamente

podremos esquivar saltandola.

Si la metralla nos alcanza, nuestro personaje, perderá una vida, y se verá como muere en la

escena.

Observareís que es un juego muy sencillo, de hecho no hemos implementado ni siquiera un

sistema de puntuación, ni un número de vidas al personaje, para que el juego finalice. Por otro

lado, se trata de un único enemigo muy fácil de esquivar, que apenas aporta complejidad al

juego. Es cierto, es un juego soso y aburrido, no lo vamos a negar, pero nuestra diversión va a

ser otra, que es la de montar estas sencillas acciones, que van a hacer complejo nuestro

trabajo.

Una vez vistos estos conceptos, entenderemos que mejorar nuestro juego será cuestión de

repetir muchos de estos procesos, de una forma mas o menos creativa.

No es nuestra intención desarrollar un complejo juego, para el que haría falta mucho mas

tiempo del que nosotros le podemos dedicar en estos momentos. Nuestra intención es que el

lector aprenda algunos trucos y que comience a familiarizarse con Flash para resolver este tipo

de aplicaciones. Luego será Usted mismo, quien decida hasta donde quiere llegar en este

apasionante mundo de los videojuegos Flash.

Page 5: Crear Un Juego Flash de Tipo Arcade

Seguidamente, en el siguiente capitulo, comenzaremos con el desarrollo de nuestra aplicación

desde cero.

2 La escena en movimiento.

2.1 El uso de sprites.

Lo que se conoce como Sprite, normalmente suele tener varias definiciones. En la wikipedia

podeís encontrar varias de las definiciones que se realizan sobre sprites, podeís verlo en este

enlace.

Tradicionalmente un sprite, es una imagen, que contiene varias posiciones para un objeto o personaje. Con la aparición de los juegos 3D, el uso de sprites está decayendo en muchas plataformas, pero aun sigue vigente, y de hecho para la generación de juegos Flash es una poderosa técnica.Aquí teneís una muestra de un Sprite para nuestro presonaje principal.

Sprites para nuestro protagonista.

Existen multitud de sitios web donde obtener sprites de forma gratuita, e incluso numerosos

programas para proceder al ripeo de sprites desde juegos en diferentes plataformas: Neo-Geo,

PC, GameBoy, PlayStation,etc....

En concreto, la mayoría de los sprites y gráficos que nosotros utilizaremos en este juego, los

hemos obtenido del sitio Sprite Database.. Podeís echar un vistazo a esta página donde

Page 6: Crear Un Juego Flash de Tipo Arcade

existen multitud de sprites listos para utilizar en nuestros juegos, cortesía de usuarios altruistas

como nosotros.

El uso de sprites para animar nuestros personajes es una excelente técnica para utilizar en

Flash, ya que es un entorno basado en la animación por fotogramas, así es que podemo usar

estos archivos, para generar los fotogramas de movimientos de nuestros personajes u objetos.

También por supuesto, podemos generar los sprites nosotros mismos con nuestros propios

dibujos para dar un toque de originalidad en nuestros juegos.

Pdemos utilizar varias técnicas para el uso de sprites en nuestras animaciones con Flash. Por

ejemplo con una única imagen como la mostrada arriba, podemos dibujar diferentes áreas en

función de la animación. No obstante la técnica que nosotros utilizaremos, es la de mediante un

editor gráfico del tipo FireWorks o Photoshop, utilizar la varita mágica para seleccionar cada

personaje. Puesto que el fondo en el sprite es de color uniforme, lo seleccionaremos sin ningún

problema. Finalmente debemos generar tantas imagenes como frames diferentes queramos

utilizar para un personaje en el desarrollo de nuestro juego Flash.

Por ejemplo, nosotros para nuestro juego, no utilizaremos todos los movimientos del personaje,

sino unos cuantos de ellos. En concreto los relativos a giro del personaje, andar hacia la

izquierda, andar hacia la derecha, y estos en los que se ve a nuestro personaje como le han

pegado un tiro y poco a poco va muriendo.

Aquí dejo una lista completa de las imagenes que hemos generado a partir de este sprite, y que

ya están exportadas como formato gif y con transparencia.

Imagenes para el movimiento de andar hacia la derecha:

Imagenes para el movimiento de andar hacia la izquierda:

Imagenes para realizar giros del personaje:

Page 7: Crear Un Juego Flash de Tipo Arcade

Imagenes para simular la muerte del personaje:

Como podreís observar, tan solo hemos escogido un subconjunto de las imagenes del sprite,

para utilizar y que van a ser suficientes para utilizar en nuestro juego, ya que si recordaís del

capítulo anterior, solo nos planteamos que nuestro personaje tuviera los movimientos de andar

izquierda, derecha, saltar, parar y morir. Como estos movimientos los realizaremos en un

escenario de dos dimensiones, las imagenes que hemos recortado del sprite, serán suficientes.

Es muy importante, que las imagenes estén sobre fondo transparente (formatos gif), ya que las

vamos a desplazar sobre un fondo dibujado, y no quedaría bonito ver moverse un rectangulo

en blanco sobre el fondo.

Estas imagenes, que hemos generado (y que podeís almacenar en vuestro disco pinchando

sobre ellas con el botón derecho del ratón y seleccionando guardar como...), nos servirán para

importarlas a la biblioteca de nuestro fichero Flash y componer un clip de película con todos los

posibles movimientos de nuestro personaje.

En el siguiente apartado, veremos como componer todos estos movimientos para nuestro

personaje.

Para las animaciones de nuestro enemigo y el camión también utilizaremos sprites que

mostraremos en su momento.

2 La escena en movimiento.

2.2 Componer los movimientos y animaciones del protagonista en Flash.

Si no descargasteis el fichero fuente, que se puso en el inicio del tutorial, aquí os dejo de nuevo

el enlace con el código finalizado. El formato es el de Flash 8.

Dentro de este fichero, encontrareís en la biblioteca una cantidad de imagenes que hemos

importado además de otros objetos, uno de ellos es el movieclip llamado soldado_mc, cuya linea de tiempo en Flash es la misma que podeís ver en la imagen que os mostramos mas abajo (acercarse y hacer zoom si es necesario a la imagen).

Page 8: Crear Un Juego Flash de Tipo Arcade

code Figura 1 - movieclip soldado_mc

El clip soldado_mc contiene todas las animaciones de movimiento para controlar a nuestro

protagonista. También contiene las funciones necesarias para fluir de un estado a otro de

nuestro personaje.

El concepto de estado, es muy importante cuando estamos realizando un juego como este.

Esto es debido a que nuestros personajes, tanto nuestro protagonista como los enemigos a

algunas determinadas acciones del juego pasan de un estado a otro en función de las acciones

que realicemos y la propia lógica del juego.

Cuando pensamos en la forma de moverse de nuestro personaje (en el capítulo 1 lo vimos), sin

darnos cuenta ya hemos realizado una aproximación a los posibles estados de nuestro

personaje, andar hacia la derecha, hacia la izquierda, parar, saltar y morir. Tendremos tantos

estados como necesitemos en el fluir de nuestro programa.

So os fijaís en la linea de tiempo del movieclip soldado_mc (figura 1 o en el fichero fuente),

observareís como hemos generado 7 capas en las que hemos ido generando varios

fotogramas clave. Estos fotogramas clave, contienen las imagenes que hemos ido generando a

partir del Sprite que vimos en el capítulo anterior.

Por ejemplo la capa andarizquierda contiene la secuencia de fotogramas con las imagenes

siguientes:

La capa andarizquierda, comienza a tener fotogramas clave, a partir del fotograma 15

de la linea de tiempo. Cada fotograma clave, contiene una de las imagenes mostradas

anteriormente, ademas, los separa un fotograma (que no es clave), y que repite la imagen.

Realmente hemos utilizado esta técnica para conseguir una animación con una frecuencia que

nos agradaba, en base a la velocidad de animación general del fichero, que en este caso es de

12fps.

El codigo fuente (ActionScript), correspondiente al fotograma 15 de la capa Acciones es el

siguiente.

status="izqandar";if(jumping){stopAllSounds();}

Como podeís observar, simplemente define la variable status con el valor izqandar.

Por otro lado para todos los sonidos que hubiesen si estamos saltando, ya comentaremos esto.

La variable status, es muy importante en el clip soldado_mc, porque en todo momento

contiene el estado en el que se encuentra nuestro personaje. El estado es muy importante,

Page 9: Crear Un Juego Flash de Tipo Arcade

porque así sabremos que es lo que está haciendo nuestro personaje en todo momento. Si esta

andando hacia la izquierda, si esta parado, si está saltando.... Por tanto la técnica que hemos

utilizado, es la de refundir, en un único clip de película, todos los estados posibles de nuestro

personaje, tanto en lo relativo a animación de movimientos como en acciones que puede

realizar. Las diferentes animaciones en las que hemos utilizado Sprites, observareís que no

están superpuestas, ya que nos desplazaremos a un segmento u otro de la lienea de tiempo

del clip, en función del estado de nuestro personaje. Así en una única película, tenemos toda la

lógica de movimientos de nuestro personaje.

En realidad hemos utilizado esta técnica de poner todos los movimientos posibles de nuestro

personaje en un único movieclip, para poder utilizar el clip, como una referencia constante a

nuestro personaje dentro de la pélicula principal (lo que es el juego en si).

Seguidamente vamos a explicar mas detalladamente el contenido de todas las capas, así como

todo el código ActionScript necesario para el correcto fluir entre estados de nuestro personaje.

2 La escena en movimiento.

2.2 Componer los movimientos y animaciones del protagonista en Flash.

code Figura 1 - movieclip soldado_mc

Ya vimos el contenido de la capa andar izquierda, el contenido de la capa andar derecha es

similar y los fotogramas incorporan las siguientes imagenes que fluyen desde los fotogramas

27 a 36:

La capa morir contiene la secuencia de imagenes de la animación de morir de nuestro

protagonista. Las imagenes que fluyen desde el fotograma 45 al 54 son las siguientes.

La capa sonido, tan solo incorpora un fichero de sonido en mp3, que simula los pasos al andar

de nuestro protagonista. Aquí os dejo el enlace al fichero de sonido en mp3.

Esta es una muestra para que los lectores veaís como hemos incorporado un sonido a la

animación de nuestro personaje. Tan solo merece la pena comentar, que el sonido lo iniciamos

cuando nos situamos en los fotogramas de inicio, tanto de andar a la izquierda como andar a la

derecha. En el resto de estados de nuestro personaje, el sonido se deshabilita. Anteriormente

Page 10: Crear Un Juego Flash de Tipo Arcade

visteis un ejemplo en el código ActionScript de andar izquierda.

Ya no hemos incorporado mas sonidos en nuestro juego, porque lo consideramos trivial y

similar a este ejemplo. El lector con este ejemplo estimamos que no tendrá mayor problema de

incorporar nuevos sonidos a mas acciones.

La capa paradofrante incorpora tan solo una imagen que es la siguiente.

Esta capa incorpora tan solo el estado paradofrente, que no contiene ninguna

animación y es el estado al que irá nuestro personaje, cuando pulsemos la flecha abajo y por

tanto quedará parado.

Llegamos a la capa giro, la cual contiene ocho imagenes que completan un giro de 360º de

nuestro personaje.

Los fotogramas de esta capa los utilizamos, para simular un fluir mas agradable en las

animaciones cuando estando en un estado cambiamos a otro, por ejemplo cuando andamos

hacia la izquierda y de repente, cambiamos a andar a la derecha, se produce un fluir similar a

un giro para cambiar de un estado a otro.

En esta capa coinciden varios estados transitorios, como izquierda y derecha. Además es en

esta capa, en concreto en el fotograma uno, donde se encuentra el estado inicial de nuestro

personaje, que no debemos confundir con el estado paradofrente.

Para la capa de acciones, tenemos la costumbre de crear una capa independiente para

introducir todo el código asociado a un número de fotograma en la linea de tiempo. De hecho

en el primer fotograma, además están todas las funciones propias del clip de película

soldado_mc Hemos declarado acciones (en ActionScript) en once fotogramas de esta capa.

La lógica principal y la definición de funciones, están en el primer fotogrma. Previo a ello,

vamos a ver el código del resto de fotogramas, que es mucho mas sencillo.

Nota: Los fotogramas que inician estados los hemos etiquetado con un nombre, así nos

será mas fácil referirnos a ellos en lugar de por el número de fotograma.

Código ActionScript del fotograma 3:

gotoAndPlay("izqandar");status="izquierda";

Page 11: Crear Un Juego Flash de Tipo Arcade

En este código correspondiente al fotograma 3, tan solo establecemos el estado (con status)

del personaje a izquierda, en realidad es un estado transitorio. Seguidamente saltamos la

cabeza lectora de la película al fotograma etiquetado como izqandar

Código ActionScript del fotograma 7:

gotoAndPlay("derandar");status="derecha";

Similar al anterior, pero referente a la intención de andar a la derecha.

Código ActionScript del fotograma 8:

if (status=="frente") {gotoAndPlay("derecha");}if (status=="paradofrente") {gotoAndPlay("derecha");}if (status=="derandar") {gotoAndPlay("frente");}

Si, nos fijamos en la imagen del fotograma 8 (capa de giro), realmente, podemos

observar, que se trata de un estado en la animación transitorio, de ahí, que hallamos,

establecido que debemos hacer, en función del estado desde el que procede nuestro

personaje.

Es decir, si nuestro status es el de frente, que esl el status inicial, y alcanzamos este

fotograma, será para inmediatamente continuar hacia el fotograma marcado como derecha, (el

fotograma anterior). Como vimos, desde este fotograma (el 7) cambiaremos de status y

continuaremos hacia andarderecha. Lo mismo sucede si nuestro status es el de paradofrente.

Sin embargo, si estamos andando hacia la derecha y alcanzamos este fotograma, nuestro

siguiente paso será el de detenernos, estado paradofrente.

Los códigos fuente para los fotogramas 15 y 24 que están estrechamente ligados, son

respectivamente los siguientes:

status="izqandar";if(jumping){stopAllSounds();}

gotoAndPlay("izqandar");

Efectivamente no necesitan mas comentarios que los de establecer el estado de nuestro

personaje a izqandar.

Cuando acabamos con la animación de los fotogramas 15 al 24, volvemos a empezar y

retornamos al fotograma 15.

Realmente, esto tiene una explicación, y es que hemos planteado nuestro juego, para que

cuando el usuario, pulse sobre la flecha izquierda, o derecha, nuestro personaje, no parará de

moverse en esa dirección, hasta que no pulsemos la tecla de flecha abajo, que es la tecla para

parar a nuestro personaje.

Page 12: Crear Un Juego Flash de Tipo Arcade

Esto lo hemos hecho así por simplicidad, pero también lo podriamos haber realizado, de modo

que el personaje, solo se moviera cuando mantenemos pulsada una tecla, no obstante, no es

significativo.

Los códigos fuente para los fotogramas 27 y 36 realizan la misma función pero en el

movimiento a la derecha:

status="derandar";if(jumping){stopAllSounds();}

gotoAndPlay("derandar");

Código ActionScript del fotograma 40:

stop();status="paradofrente";

Simplemente para al personaje, no contiene animación y establece el status paradofrente

Los códigos fuente para los fotogramas 45 y 54 son los relativos a la animación de muerte:

status="muerto";

stop();

A diferencia del movimiento a derecha e izquierda, aquí no repetimos la animación y en el

fotograma 54 la paramos con la sentencia stop(); No vamos a tener a nuestro personaje

muriendo continuamente.

A continuación en la siguiente página vamos a comentar todas las acciones que nos saltamos

correspondientes al fotograma 1

2 La escena en movimiento.

2.2 Componer los movimientos y animaciones del protagonista en Flash.

Bajo estas lineas, está el código fuente ActionScript para el fotograma 1 del clip

soldado_mc.

code Código para el fotograma 1 de soldado_mc.

Page 13: Crear Un Juego Flash de Tipo Arcade

Realmente en este fotograma hemos generado todas las funciones para pasar a los estados

correspondientes y que vimos anteriormente de nuestro protagonista.

Además daros cuenta, que aunque inicalmente hablamos de que nuestro protagonista, tendría

la capacidad de salto, anteriormente no hemos visto generada ninguna capa para salto en la

linea de tiempo del clip.

Esto es debido a que realmente la forma de saltar de nuestro personaje, la hemos planteado

generando una funcion llamada salta.

Vamos a comentar todas las funciones de este código para ver las acciones que realizan:

funcion anda_izquierda y funcion gira_izquierda:

Realmente, estas dos funciones las podriamos haber refundido en una.

No tienen demasiado misterio, y esque en función del estado (definido por la variable status) en

el que se encuentre nuestro protagonista, mueven la cabeza lectora del clip a uno u otro

fotograma.

Es interesante hacer notar, que si estamos muertos, no se realiza ninguna acción.

funcion anda_derecha y funcion gira_derecha:

Estas funciones son análgas a las anteriores que hemos visto.

funcion parar:

También análoga a la anterior, ya que en función del estado en el que estamos, para o no

realiza ninguna acción.

funcion morir:

Esta función directamente mueve la cabeza lectora al fotograma morir, sin importarle el estado

anterior del cual procedamos.

funcion salta y función salto_anim:

Estas dos funciones, son las encargadas de simular un salto de nuestro protagonista.

Realmente, la técnica que van a utilizar es la de cambiar la propiedad _y de nuestro clip de

película en función de unas formulas determiandas. En la línea 65 podeís observar como existe

una comprobación condicional que evita que podamos saltar si el estado de nuestro personaje

es frente (estado inicial), paradofrente o muerto. Lo que pretendemos es simular un salto

variando la propiedad _y de nuestro clip, pero sin detener las animaciones de los cuatro

estados permitidos para realizar un salto: derecha, izquierda, derandar e izqandar. Esto es

un salto, al estilo Manic Miner (juego del ZX Spectrum de Sinclair) o a lo Michael Jordan :) .

Prosigamos. Cuando queramos que nuestro protagonista salte, deberemos llamar a la funcion

salta(), la cual establecera un valor para una serie de variables globales al clip t, vini, a,

jumpDir y yini.

Esto es así porque a la hora de implementar nuestro salto nos vamos a basar en propiedades

físicas reales de movimiento, es decir, el salto hacia arriba, será un movimiento desacelerado

(por la gravedad) y hacia abajo, se tratará de un movimiento acelerado, con el top del suelo.

Page 14: Crear Un Juego Flash de Tipo Arcade

Podeís aprender mas acerca de este tipo de movimiento en Flash con otro tutorial que

publicamos anteriormente aquí en redribera.

La función salta, además de inicializar estas variables (aceleración, velocidad inicial, posición

inicial, sirección del salto y tiempo), lo que hace es crear una función de intervalo (linea 74),

previo a ello eliminamos algún posible residuo del intervalo que pudiera quedar (línea 73).

El intervalo se establece para la función salto_anim(), que comienza a ejecutarse

indefinidamente cada intervalo de tiempo que hayamos establecido, en nuestro caso 25 y

teniendo en cuenta la velocidad en fps de nuestra película.

LA función salto_anim() en realidad, utiliza la física que hemos establecido para calcular la

posición _y de nuestro clip soldado_mc en función del valor de las variables físicas y del

vector de movimiento, en este caso los valores up y down. Finalmente, cuando en un

movimiento down, hemos tocado el suelo (osea nuestra posición _y original), detenemos la

animación de la función (línea 99) y reestablecemos la posición original del clip (línea 95). Esto

es debido a que en los cálculos físicos, pudieramos tener una pequeña desviación del valor _y.

Las línes 78 y 97 respectivamente, dan valor a un nuevo estado de nuestro personaje jumping,

que establecen respectivamente e true o false. Debemos conocer este estado, y lo vereís mas

adelante (ya lo utilizamos para saber si debemos parar el sonido de los pasos), porque según

la lógica de nuestro juego, no vamos a permitir cambiar de estado a nuestro personaje, cunado

éste, esté saltando. Solo con una excepción, que será cuando le disparen y lo alcancen, en

cuyo caso, si que permitiremos pasar al estado de muerto y continuar con el salto.

Estas excepciones, no las vamos a controlar en el clip soldado_mc, como hicimos con otras,

sinó que en la propia lógica del juego, en la escena principal será donde las realicemos.

Si habeís descargado el código fuente, en la escena principal, la instancia de soldado_mc,

llamada hombre (en el fotograma 2 de la escena principal), y desplegaís las acciones para

hombre, vereís como allí están especificadas estas restricciones.

Con la finalización de este soldado_mc, ya tenemos un clip de película, que podemos insertar

en otros clips de película y que es capaz de soportar diferentes estados de animación mediante

la correcta llamada a las funciones que se declaran en el ActionScript del fotograma 1. Bajo

estas lineas observareís una pelicula Flash que responde a las pulsaciones de las flechas de

teclado, pasando a mover nuestro personaje en las diferentes animaciones que hemos

generado (si no responde, haz click sobre la imagen primero).

Page 15: Crear Un Juego Flash de Tipo Arcade

Descarga del archivo .fla

Efectivamente nuestro hombre cambia de estado según pulsamos la tecla correcta. Nuestro

hombre en estos momentos está estático en la escena. Y llegado a este punto nos debemos

plantear como se moverá por la película, para lo cual hay multitud de técnicas.

Esto es todo, respecto al clip soldado_mc, seguidamente veremos como procesar la lógica de

nuestro juego. Es decir el movimiento de nuestro personaje mediante la pulsación de teclas, la

IA de nuestro enemigo y la simulación de movimiento con el desplazamiento del fondo del nivel.

2 La escena en movimiento.

2.3 Simular el movimiento sobre el fondo.

Una vez tenemos todos los movimientos de nuestro personaje definidos y programados, nos

damos cuenta como ya comentabamos anteriormente, de que nuestro personaje, no se

desplaza a lo largo de la escena. Entonces ¿Como realizamos el movimiento?. Existen varias

técnicas, pero casi todas ellas, están basadas en el scrolling del escenario. Es decir, nuestro

personaje se queda fijo en un punto, o como mucho tiene limitado el punto máximo al que

puede llegar dentro de la escena. Pero llegado a un punto no es nuestro personaje quien se

mueve, sino el fondo de la escena.

En nuestro caso, la técnica utilizada, es dejar fijo a nuestro personaje en el centro y lo que

realmente vamos a hacer es mover el escenario en el sentido opuesto al movimiento de

nuestro personaje.

Bajo estas líneas teneís el ejemplo de como realizar estas acciones implementado (si el

soldado no responde a la pulsacion de las flechas, hacer un click sobre la película flash).

Page 16: Crear Un Juego Flash de Tipo Arcade

Descarga del archivo .fla

Para conseguir este efecto, hemos utilizado lo que se conoce como un fondo reversible. Es

decir una imagen de fondo que se puede conectar el final con el principio. De hecho si

imprimieramos esta imagen y uniesemos los bordes de los extremos nos quedaría un bonito

fondo si fin circular.

Para conseguir la animación del fondo en uno u otro sentido y además que este sea infinito, lo

que hemos hecho (lo podeís ver si descargaís el fichero de ejemplo soldado_test2), ha sido

utilizar dos instancias de nuestro fondo reversible y colocarlas en la escena principal. Y la

hemos procesado con dos funciones.

Veamos y expliquemos el código ActionScript utilizado para simular este efecto:

Previo a ello os dejo aquí un enlace a la imagen que hemos utilizado como fondo de nuestro

nivel/escena.

code Código para el fotograma 1 de la película.

Este código debemos insertarlo en el primer fotograma de la escena principal. Previo a ello,

debemos insertar dos instancias del fondo que hemos utilizado. En este caso nosotros las

hemos llamado bg1 y bg2. Además ambas instancias deben estar colocadas contiguas una a

la otra y alineadas en la escena. Por supuesto la capa donde las ubiquemos, debe dejar de ver

a nuestro soldado. En el fichero de ejemplo podeís observar como está compuesto.

Si os fijaís hemos definido dos variables bg_speed y bg_width (línes 3 y 4). Estas variables

contienen la velocidad de movimiento del fondo y el ancho de nuestra escena.

Con las funciones bgMoveDer, bgMoveIzq y bgStop, lo que hacemos es manipular la variable

bg_speed, un valor positivo, un valor negativo, o cero.

El secreto del movimiento, radica en que para cada fotograma que procesa la película, líneas 6

a 8 onEnterFrame, procesamos la función mueve_fondo. La función mueve_fondo, es

dependiente tanto de la velocidad del fondo bg_speed, como del ancho de la escena,

bg_width.

Por tanto si observaís bien el código fuente y en función de estas variables las dos instancias

del clip donde introducimos la imagen del fondo, cambian el valor de la propiedad _x. Es por

Page 17: Crear Un Juego Flash de Tipo Arcade

ello que se hacen necesarias dos imagenes (y además mas anchas que la escena), para poder

cubrir los espacios en blanco que deje la otra al cambiar el valor de _x.

Ahora solo nos falta sincronizar la velocidad del fondo con el movimiento de nuestro protagonista.Para ello solo hace falta echar un vistazo al código asignado a la instancia del clip de nuestro protagonista.

code Código para la instancia del clip de soldado_mc.

Fijaros como en este código, además de cambiar el estado de nuestro protagonista en función

de la tecla del cursor presionada, si estas teclas son la flecha izquierda, derecha, o abajo,

llamamos a una de las funciones de la escena principal que vimos en el código anterior. Es de

esta forma como sincronizamos el movimiento de nuestro protagonista con el fondo de la

escena. Y así es como conseguimos el efecto que pùdisteis comprobar en el ejemplo al

principio de esta página.

Fijaos también como en el momento de presionar la tecla de salto, no variamos la velocidad del

fondo, ya que el salto siempre lo realizamos en una dirección, bien andando a la izquierda, o

bien andando a la derecha.

El código ActionScript no necesita mas comentario, y podeís descargar el fichero de ejemplo (al

principio de la página), para ver como está montado todo.

Seguidamente, veremos como animar a nuestro único enemigo, para dar una interactividad al

juego.

2 La escena en movimiento.

2.4 Añadir un enemigo a nuestro juego.

Para hacer algo mas entretenido nuestro juego, vamos a introducir un personaje a la escena.

Se trata de un enemigo que disparará contra nosotros y para no morir por sus disparos,

deberemos saltar para esquivar las rafagas de metralla que este nos lanza. Es una acción

típica de un arcade, que en nuestro juego apenas implica dificultad, pero que a nosotros nos

servirá para aprender como lograr introducir enemigos en nuestro juego. Nos hemos planteado

a este enemigo, y siguiendo la técnica que vimos anteriormente en cuanto al uso de sprites,

vamos a disponer de esta secuencia de imagenes para animar al mismo:

Imagenes para simular a nuestro enemigo disparandonos:

Page 18: Crear Un Juego Flash de Tipo Arcade

No necesitaremos mas imagenes para animar a este personaje, para el cual

crearemos un clip de película al que llamaremos enemy1.

línea de tiempo para el clip enemy1.

function dispara(){this.gotoAndPlay("disparo");}

Código ActionScript para el fotograma 1 de enemy1

stop();

Código ActionScript para el fotograma 14 de enemy1

Como podreís observar, en el fotograma 1, declaramos la función dispara, que será la

encargada de generar la animación de nuestro enemigo disparando contra nosotros.

El Código del fotograma 14, detien el clip, para que nuestro enemigo no dispare continuamente,

sino solo cuando nosotros llamemos a la función dispara.

Page 19: Crear Un Juego Flash de Tipo Arcade

Hemos pensado, que nuestro enemigo, vendrá a dispararnos, montado en un camión por la

carretera por la cual transita nuestro protagonista. También utilizaremos algunos sprites para

generar la animación del camión en el que montará nuestro enemigo.

Imagenes para simular el camión en el que monta nuestro enemigo:

A diferencia de la animación de nuestro enemigo, el clip que generaremos para el movimiento del camión, siempre estará reproduciendose, ya que vamos a simular que aparece y desaparece de la escena y que siempre está en marcha.

Así quedará nuestro enemigo en la escena.

Aunque podriamos generar un clip independiente que contuviese ambos clips, por simplicidad,

dejaremos los dos clips en la escena principal de nuestro fichero final.

En la imagen mas arriba, podreís observar que nuestro enemigo y el camión están al reves que

nuestro sprite, esto es facil de conseguir insertando la instancia en la escena de flash y

haciendo una transformación de voltear horizontalmente.

En nuestro juego, nuestro enemigo siempre aparecerá por el lado derecho de la película. Y

aunque en la imagen mas arriba y en el fichero fuente podemos ver a nuestro enemigo, en

tiempo de ejecución este no se ve, ya que hemos incorporado una mascara y además

inicialmente esta posicionado en la escena, fuera del area visible cuando la película esta en

ejecución.

Ahora nuestra misión será generar el desplazamiento del camión (y el enemigo que monta

sobre el), a lo largo de la escena principal y de generar la IA (en este caso muy sencilla), para

que llegado a un punto, nuestro enemigo dispare sobre nosotros.

Page 20: Crear Un Juego Flash de Tipo Arcade

Por último y antes de pasar a ver la Inteligencia artificial (básica) de nuestro enemigo, hemos

de crear un nuevo clip al que llamaremos disparo1 y el cual contiene una pequeña animación

de un simple punto, y que será el que utilizaremos como proyectil de nuestro enemigo. Todos

estos clips, los podeís encontrar en el fichero fla finalizado, del cual os vuelvo a dejar un enlace

aquí.

2 La escena en movimiento.

2.5 Enemigo en acción.

Llegados a este punto, debemos proceder, al igual que hicimos con nuestro protagonista, a

generar la animación de nuestro enemigo. Al igual que hicimos anteriormente nos debemos

plantear toda la lógica de sus acciones. Y al igual que hicimos antes la técnica a seguir es muy

similar a la de nuestro protagonista, basada en los diferentes estados de nuestro enemigo.

Nosotros hemos planteado la forma de atacar de nuestro enemigo de la siguiente forma:

Nuestro enemigo aparecerá y desaparecerá por el lado derecho de la pantalla, montado en el

camión. Llegado a un punto x, éste, procederá a disparar una rafaga de metralla contra

nosotros. A partir de ahí se volverá a retirar y desparecerá de la escena. Y así continuamente

por la simplicidad que le vamos a dar a este juego. Nuestro enemigo aparecerá montado en su

camión, independientemente de que nuestro protagonista está desplazandose hacia la

izquierda, o hacia la derecha. Intentaremos simular un efecto de velocidad de nuestro enemigo,

para que el camión no avance a la misma velocidad, si nuestro protagonista, camina hacia la

izquierda, hacia la derecha, o está parado. Por tanto el desplazamiento de nuestro

protagonista, afectará al desplazamiento de nuestro enemigo. La única forma que tenemos de

esquivar la metralla que dispara nuestro enemigo, es saltarla. Para añadir algo (muy poca) de

dificultad a nuestro protagonista, nuestro enemigo disparará rafagas con una cantidad aleatoria

de proyectiles. Osea que algunas rafagas serán muy faciles de saltar, y otras, no lo serán tanto.

Si alguna rafaga, alcanza a nuestro protagonista, esté morirá.

Aunque no hemos implementado una capacidad de disparo a nuestro protagonista, el lector

observará al final de este tutorial, como el desarrollo seria análogo al utilizado por nuestro

enemigo.

Este tipo de movimiento de un enemigo, era muy clásico con los enemigos finales de las

antiguas maquinas recreativas. Evidentemente, no se trata de un enemigo complejo, además

no establecemos ningún tipo de sistema de puntuación. El juego finalizará aquí, con nuestro

enemigo, en un ciclo continuo de aparecer--disparar--desaparecer. De todos modos con unos

pocos cambios, podriamos llegar a finalizar un juego, incluso algo mejor que algunos a los que

he jugado por internet.

Nuestra intención en este caso, es que el lector vea los procedimientos utilizados y los adecue

a la generación de sus propios juegos. Seguidamente vamos a ver y comentar el código

necesario para realizar estas acciones. Queremos también apuntar, que por simplicidad el

código necesario para el movimiento de nuestro enemigo (así como anteriormente el

Page 21: Crear Un Juego Flash de Tipo Arcade

movimiento del fondo), lo hemos implementado en la escena principal de nuestra película

Flash. Por supuesto, en un desarrollo de mayor envergadura, el lector debería plantearse, una

mejor distribución del código fuente, asi como la programación de clases para obtener un

código suficientemente legible y estructurado, para un mejor desarrollo de la aplicación. Para

los propositos de nuestro tutorial, es suficiente la forma en la que hemos distribuido todo, sino

nunca hubieramos acabado de redactar este tutorial.

Este es el código necesario para realizar el resto de acciones, que se encuentra alojado en el primer fotograma de la escena principal y que comentaremos punto por punto.

code Código para la instancia del clip de soldado_mc.

Ya hemos explicado algunas de las funciones de este código, en lo referente al movimiento del

fondo sincronizado con el movimiento de nuestro personaje.

De la línea 40 a la línea 72, encontramos la función mueve_enemigo1(). Esta función lo

primero que hace es mirar el valor de la variable global show_enemy_der (en la línea 6). Si

esta variable se establece a falso, nuestra función no se ejecutará. Como nosotros hemos

pretendido realizar un bucle infinito con nuestro enemigo, hemos establecido esta variable a

true. Pero no está de mas conocer que está ahí, para detener el movimiento de nuestro

enemigo.

Si nos fijamos en la línea 15 del código, vemos que dentro de la función onEnterFrame,

hacemos una llamada continua a la función mueve_enemigo1(). Por tanto la función está en

ejecución continua.

Gracias a esta ejecución continua, nos podemos plantear los cambios de estado de nuestro

enemigo en base a las comprobaciones que realizamos en las líneas 43 a 69.

La base para mostrar a nuestro enemigo es situarlo inicialmente fuera de la escena (cubierto

por una mascara), y a partir de ahí ir variando la propiedad _x de los dos clips de película

pertenecientes a nuestro enemigo y al camión, simultaneamente.

Por ejemplo si nos fijamos en este código perteneciente a la función

if (camion_der._x>480 and enemy_status==0){enemy_speed=-2;}

Lo que hacemos, es que mientras la posición del enemigo no alcance el punto x=480, lo vamos

desplazando hacia la izquierda dos unidades.

enemy_der._x=enemy_der._x+enemy_speed;camion_der._x=camion_der._x+enemy_speed;

Este código al final de la función es el encargado de actualizar las posiciones del enemigo cada

vez que se procesa un fotograma de la escena principal.

Page 22: Crear Un Juego Flash de Tipo Arcade

if (camion_der._x>480 and bg_speed>0 and enemy_status==0){enemy_speed=-0.5;}

Esta comprobación es simultanea, y lo que hace es ralentizar la marcha del enemigo cuando

nos desplazamos hacia el lado contrarió, osea hacia la izquierda.

if (camion_der._x<480 and enemy_status==0){enemy_speed=0;enemy_status=1;}

Cuando alcanzamos la posición x máxima del enemigo, cambiamos el estado del mismo al

estado 1, variable global enemy_status.

En este nuevo estado nuestro enemigo será cuando nos dispare.

if (enemy_status==1){enemy_der.dispara();disparo=true;ndisparos=randRange(2,8);enemy_status=2}

Nuestro enemigo dispara un número entre 2 y 8 proyectiles sobre nosotros y cambia su estado

al valor 2, para comenzar a desplazarse de nuevo hacia la derecha y desaparecer.

if (enemy_status==2 and bg_speed>0){enemy_speed=5;}if (enemy_status==2 and camion_der._x>600){enemy_speed=0;enemy_status=0;//show_enemy_der=false;}

Con estas últimas comprobaciones, desplazamos de nuevo a nuestro enemigo hacia la

derecha, para que desaparezca, y de nuevo inicie la secuencia.

Fijaos como hemos comentado la linea 62, para no establecer a false la variable

show_enemy_der. Si al acabar la secuencia, estableciesemos esta variable a true, como

vimos anteriormente, nuetsro enemigo ya no volvería a aprecer hasta que no la mostraramos.

Daros cuenta como hemos determinado los estados de nuestro enemigo, de una forma

sencilla, cuanto mas compleja sea la acción de nuestro enemigo, mas compleja será la

definición de estados del mismo. Aunque de esta forma observareís como podemos conseguir

un tipo de movimiento con unas pocas instrucciones.

Comentar como la función de las líneas 36 a 38, lo unico que hace es mover nuestra película

del fotograma 1 al fotograma 2, esto es porque hemos hecho una sencilla pantalla de inicio

para nuestro juego donde ponemos las instrucciones de movimiento del mismo, y que no

Page 23: Crear Un Juego Flash de Tipo Arcade

necesita mas comentarios. Seguidamente y para finalizar, veamos como dispara nuestro

enemigo sobre nosotros.

2 La escena en movimiento.

2.6 Disparo y detección de colisiones.

Para finalizar, veamos como resolvemos la forma de disparar de nuestro enemigo. Mostramos nuevamente el código fuente que vimos anteriormente.

code Código para la instancia del clip de soldado_mc.

En las líneas 8,9 y 10 declaramos sendas variables globales relativas a la acción de disparar.

La función dispara_der que se define entre las líneas 74 a la 91, es la encragada de realizar el

movimiento de los disparos.

Esta función solo actua desde el evento onEnterFrame, línea 16, y para ello requiere que la

variable disparo, sea true (inicialmente es false). El encargado de activar esta variable, osea el

disparo, es nuestro enemigo, cuando se encuentra en el estado 1, línea 66.

Una vez esta variable se active y se establezcan el número de disparos, se llama a la función

dispara_der, por cada evento de fotograma que se produzca.

Para ello, fijaros, como también tenemos una variable de estado del disparo (algo diferente)

disparo_status, inicialmente a 0 y que aumenta conforme realizamos un disparo. línea 77.

Llega a contener el valor del número de disparos. En la línea 76 se observa como añadimos a

la escena un clip de bala, que ya creamos anteriormente en la posición donde se encuentra

nuestro enemigo, que ya está desplazandose hacia la derecha. Al mismo tiempo, entre las

líneas 79 a la 85, tenemos un bucle que se ejecuta tantas veces como balas tenemos en

movimiento (lo limita el valor de disparo_status), y que se encarga de desplazar cada bala. 10

unidades a lo largo del eje x, línea 80.

De las líneas 81 a 85, tenemos una propiedad muy importante de los objetos MovieClip de

Flash, encargada de la detección de colisiones. Se trata de la propiedad hitTest de un

movieClip y que acepta como argumento otro movieclip. Bueno, pues esta función devuelve un

valor de true, cuando ambos movieeClips están en superposición. Esto nos viene de perlas

para testear por cada movimiento del proyectil, si este se haya en contacto con la instancia del

clip soldado_mc y que en nuestro ejemplo se llama hombre, para saber si a nuestro

personaje, lo alcanzó un proyectil, en cuyo caso lo pasaremos al estado de morir. Líneas 81 a

85.

Además de ello, iniciaremos una cuenta linea 83, de 40 eventos de fotograma (además de

parar el fondo de la escena, en la línea 84), y que pasados estos 40 eventos, nuestro soldado

volverá a la vida, para seguir con el juego. Este test se hace entre las líneas 17 a la 20 en los

eventos onEnterFrame.

Finalmente entre las líneas 87 a 90 comprobamos si los disparos salieron por la izquierda de la

Page 24: Crear Un Juego Flash de Tipo Arcade

pantalla, en cuyo caso reinicializaremos los valores de disparo, que nuestro enemigo se

encargará de reinicializar mas tarde cuando se cumpla otro ciclo.

Y eso es todo en cuanto a la explicación del código. Bajo estas líneas os dejo nuevamente

nuestro prototipo de juego con el fichero fla lista para descargar donde todos los comentarios

que hicimos quizás se os clarifiquen algo mejor.

Descarga del archivo .fla

Por último comentaremos en la siguiente sección algunas anotaciones finales que los autores

queremos realizar acerca del desarrollo de este y otros juegos en Flash que nos parece

necesario para finalizar este tutorial.

2 La escena en movimiento.

2.7 Comentarios finales.

Para finalizar con este tutorial, quisieramos dirigirnos al lector para comentar nuestras

impresiones a lo largo del proceso de este tutorial y que no tienen cabida en otras secciones.

Lo primero, es disculparnos por las posibles faltas de ortografía que el tutorial pudiera tener y

que esperamos revisar en breve.

Dicho esto, también queremos comentaros que nuestra experiencia en el desarrollo de juegos y

sobre todo en Flash, no es mas que la de aficionados en esta materia, y por tanto no queremos

que el lector tome como verdades absolutas lo expuesto en este tutorial, ya que posiblemente

personas con mucha mas experiencia podrían criticar con razón este trabajo.

Aun así sencillamente hemos querido compartir con vosotros el trabajo que hemos realizado

para la confección de este sencillo juego. Por supuesto, pensamos que este trabajo es

mejorable de principio a fin, y nos daremos por satisfechos con que solamente a uno de

vosotros este trabajo le haya sido útil de alguna manera.

Posiblemente no se trate de un código demasiado depurado, pero creemos que lo realmente

importante en este tutorial es que el lector aprenda algunas técnicas en cuanto a lo que

animación e interacción con el usuario en Flash se refiere. La depuración del código puede ser

un proceso laborioso que dejamos al estilo de programación de cada persona.

Page 25: Crear Un Juego Flash de Tipo Arcade

En cuanto al juego en si, evidentemente se trata de un juego muy sencillo que no ha costado

de desarrollar ni una decima parte de lo que ha costado elaborar este tutorial, y es que a veces

es muy complejo poder expresar las ideas que uno tiene en la cabeza.

Aunque se trata de un juego muy sencillo, creemos que una gran cantidad de las bases para el

desarrollo general de juegos flash, se han expuesto en este tutorial. A partir de esta base, es

sencillo realizar modificaciones que den mas potencia a nuestro juego. Por ejemplo no sería

excesivamente complejo hacer que el mismo enemigo apareciese también por la izquierda a

disparar contra nosotros. Incluso un sistema de puntuaciones o un número de vidas máximo

para nuestro protagonista sería facilmente solucionable con unas cuantas variables e

instrucciones en el lugar adecuado.

También nos podemos plantear crear una variable que aumente o disminuya cuando andamos

a derecha o izquierda y por cada evento de fotograma que suceda, que basicamente situe a

nuestro personaje a lo largo del eje x, con lo que podremos visualizar uno u otro enemigo y

conseguir un final para nuestro nivel.

En fin con el suficiente tiempo, las posibilidades de este u otros juegos, son infinitas y quizás

sea un buen trabajo para la correcta comprensión del lector, el ampliar este juego.

Podemos ampliar nuestro escenario para que fluya de arriba a abajo, establecer plataformas en

las que se apoye nuestro personaje, diferentes movimientos,etc...

Por nuestra parte aquí dejamos este trabajo, del que posiblemente realicemos un nuevo

tutorial, si tiene el suficiente éxito, con nuevas ampliaciones de nuestras técnicas. De todo

corazón esperamos que este tutorial os haya sido útil y esperamos vuestros comentarios en el

mismo tutorial o en los foros de nuestro sitio.

Atentamente Julio.