Crear Un Juego Flash de Tipo Arcade

download Crear Un Juego Flash de Tipo Arcade

of 22

Transcript of Crear Un Juego Flash de Tipo Arcade

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

1 Introduccion y descripcin del problema.

1.1 Introduccin. 1.2 A quien va dirigido este tutorial. 1.3 Descripcin 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 Continuacin... 2.2 Continuacin... 2.3 Simular el movimiento sobre el fondo. 2.4 Aadir un enemigo a nuestro juego. 2.5 Enemigo en accin. 2.6 Disparo y deteccin de colisiones. 2.7 Comentarios finales.

1 Introduccion y descripcin del problema. 1.1 Introduccin.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. Tambin 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 puntuacn, aunque en el desarrollo de nuestro juego sera muy fcil de implementar, y adems solo veremos el movimiento de un enemigo y como este dispara un arma. Tambin trataremos el tema de las colisiones entre clips de pelcula, que en este caso nos valdrn 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 lneas, encontrares el desarrollo finalizado del fichero Flash (para la versin de Flash 8 y superiores) con el juego que vamos a desarrollar. Tan solo es necesario pulsar el botn 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 dedicacin, as como una buena planificacin del mismo, y sin olvidarnos de la creatividad que el mismo tenga. Es as que juegos con un desarrollo tanto grfico como de programacin importante, no consiguen llegar a una audiencia buena, incluso me permitira decir, que ni siquiera a divertir. Por ello la creatividad y correcta planificacin 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 prcticamente nula. Aun as estimamos que las tcnicas utilizadas por nosotros pueden ser de inters a una audiencia de lectores que pretendan iniciarse en este tipo de desarrollos.

Nota: Es necesario Flash Player 8 o superior para la correcta visualizacin de los ejemplos del tutorial. Desde esta misma pgina en la parte izquierda de navegacin hay un enlace a la pgina de descargas de Flash Player de Adobe.

1.2 A quien va dirigido este tutorial.Este tutorial est dirigido, a aquellas personas que tengan inters en el desarrollo de juegos en Flash, y que no tengan una nocin avanzada en este tema. Los mtodos utilizados (uso de sprites y otros), son de sobra conocidos por las personas que tienen una experiencia en el mundo del desarrollo de juegos. An as este tutorial pretende centrarse en estos aspectos en conjunto con su aplicacin 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 bsico de de Flash, creacin de pelculas en y manejo bsico. Flash). As mismo el tutorial asume que el lector tiene un conocimiento del lenguaje ActionScript (lenguaje programacin 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 iniciacin 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 nuestros foros o en los comentarios para este tutorial, a los cuales podes acceder a traves del men situado a la izquierda en esta misma pgina. Esperamos que el tutorial sea del agrado del lector.

1.3 Descripcin de nuestro juego.

Vamos a incluir este apartado en este captulo de introduccin, para tener una visin global de los objetivos o acciones que va a implementar nuestro juego. Esto es as para que el lector tenga una visin de los objetivos que pretendemos, antes de iniciarse en el desarrollo tcnico del mismo. Por supuesto, para nosotros estos objetivos estn 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. An 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: y y y y

Movernos hacia la izquierda - flecha izquierda. Movernos hacia la derecha - flecha derecha. Saltar hacia arriba (en direccin) - flecha arriba. etener a nuestro personaje - flecha abajo.

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

enemigo que disparar sin cuartel contra nuestro protagonista, y este, deber esquivar sus disparos utilizando su potente salto. Nuestro enemigo, vendr a por nosotros montado en su flamante camin:

Por otro lado, tendremos la escena (o vulgarmente conocido como nivel en los arcade.), donde transcurrir esta persecucin 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 podremos escena. Observares que es un juego muy sencillo, de hecho no hemos implementado ni siquiera un sistema de puntuacin, ni un nmero de vidas al personaje, para que el juego finalice. Por otro lado, se trata de un nico enemigo muy fcil de esquivar, que apenas aporta complejidad al juego. Es cierto, es un juego soso y aburrido, no lo vamos a negar, pero nuestra diversin 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 cuestin de repetir muchos de estos procesos, de una forma mas o menos creativa. No es nuestra intencin desarrollar un complejo juego, para el que hara falta mucho mas tiempo del que nosotros le podemos dedicar en estos momentos. Nuestra intencin 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 desde cero. mundo de los videojuegos Flash. Seguidamente, en el siguiente capitulo, comenzaremos con el desarrollo de nuestra aplicacin nos disparar montado esquivar en su camin. saltandola. El enemigo, aparecer en la escena de vez en cuando y nos disparar metralla, que solamente Si la metralla nos alcanza, nuestro personaje, perder una vida, y se ver como muere en la

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 podes encontrar varias de las definiciones que se realizan sobre sprites, podes verlo en este enlace. Tradicionalmente un sprite, es una imagen, que contiene varias posiciones para un objeto o personaje. Con la aparicin de los juegos 3D, el uso de sprites est decayendo en muchas plataformas, pero aun sigue vigente, y de hecho para la generacin de juegos Flash es una poderosa Aqu tenes una muestra de un Sprite para nuestro presonaje principal. tcnica.

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 mayora de los sprites y grficos que nosotros utilizaremos en este juego, los hemos obtenido del sitio Sprite Database.. Podes echar un vistazo a esta pgina donde existen multitud de sprites listos para utilizar en nuestros juegos, cortesa de usuarios altruistas como nosotros.

El uso de sprites para animar nuestros personajes es una excelente tcnica para utilizar en Flash, ya que es un entorno basado en la animacin por fotogramas, as es que podemo usar estos archivos, para generar los fotogramas de movimientos de nuestros personajes u objetos. Tambin por supuesto, podemos generar los sprites nosotros mismos con nuestros propios dibujos para dar un toque de originalidad en nuestros juegos. Pdemos utilizar varias tcnicas 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 funcin de la animacin. No obstante la tcnica que nosotros utilizaremos, es la de mediante un editor grfico del tipo FireWorks o Photoshop, utilizar la varita mgica para seleccionar cada personaje. Puesto que el fondo en el sprite es de color uniforme, lo seleccionaremos sin ningn 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 estn exportadas como formato gif y con transparencia. Imagenes para el movimiento de andar hacia la derecha:

Imagenes para realizar giros del personaje:

Imagenes para simular la muerte del personaje:

Como podres 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 recordas del captulo 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, sern suficientes. Es muy importante, que las imagenes estn sobre fondo transparente (formatos gif), ya que las vamos a desplazar sobre un fondo dibujado, y no quedara bonito ver moverse un rectangulo en blanco sobre el fondo. Estas imagenes, que hemos generado (y que podes almacenar en vuestro disco pinchando sobre ellas con el botn derecho del ratn y seleccionando guardar como...), nos servirn para importarlas a la biblioteca de nuestro fichero Flash y componer un clip de pelcula 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 camin tambin 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 cdigo finalizado. El formato es el de Flash 8. Dentro de este fichero, encontrares en la biblioteca una cantidad de imagenes que hemos importado adems de otros objetos, uno de ellos es el movieclip llamado soldado_mc, cuya linea de tiempo en Flash es la misma que podes ver en la imagen que os mostramos mas abajo (acercarse y hacer zoom si es necesario a la imagen).

El clip soldado_mc contiene todas las animaciones de movimiento para controlar a nuestro protagonista. Tambin 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 funcin de las acciones que realicemos y la propia lgica del juego. Cuando pensamos en la forma de moverse de nuestro personaje (en el captulo 1 lo vimos), sin darnos cuenta ya hemos realizado una aproximacin 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 fijas en la linea de tiempo del movieclip soldado_mc (figura 1 o en el fichero fuente), observares 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 siguientes: que vimos en el captulo anterior. Por ejemplo la capa andarizquierda contiene la secuencia de fotogramas con las imagenes

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 tcnica para conseguir una animacin con una frecuencia que nos agradaba, en base a la velocidad de animacin 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 podes 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, 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 tcnica que hemos utilizado, es la de refundir, en un nico clip de pelcula, todos los estados posibles de nuestro personaje, tanto en lo relativo a animacin de movimientos como en acciones que puede realizar. Las diferentes animaciones en las que hemos utilizado Sprites, observares que no estn superpuestas, ya que nos desplazaremos a un segmento u otro de la lienea de tiempo del clip, en funcin del estado de nuestro personaje. As en una nica pelcula, tenemos toda la lgica de movimientos de nuestro personaje. En realidad hemos utilizado esta tcnica 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 plicula principal (lo que es el juego en si). Seguidamente vamos a explicar mas detalladamente el contenido de todas las capas, as como todo el cdigo 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.

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 animacin 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 veas como hemos incorporado un sonido a la animacin 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 visteis un ejemplo en el cdigo 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 animacin 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. Adems 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 cdigo asociado a un nmero de fotograma en la linea de tiempo. De hecho en el primer fotograma, adems estn todas las funciones propias del clip de pelcula soldado_mc Hemos declarado acciones (en ActionScript) en once fotogramas de esta capa. La lgica principal y la definicin de funciones, estn en el primer fotogrma. Previo a ello, vamos a ver el cdigo 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 fcil referirnos a ellos en lugar de por el nmero de fotograma. Cdigo ActionScript del fotograma 3: gotoAndPlay("izqandar"); status="izquierda"; En este cdigo 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 pelcula al fotograma etiquetado como izqandar Cdigo ActionScript del fotograma 7: gotoAndPlay("derandar"); status="derecha"; Similar al anterior, pero referente a la intencin de andar a la derecha. Cdigo 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 animacin transitorio, de ah, que hallamos, establecido que debemos hacer, en funcin 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 cdigos fuente para los fotogramas 15 y 24 que estn 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 al fotograma izqandar. 15. Cuando acabamos con la animacin de los fotogramas 15 al 24, volvemos a empezar y retornamos Realmente, esto tiene una explicacin, 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 direccin, hasta que no pulsemos la tecla de flecha abajo, que es la tecla para parar a nuestro personaje. Esto lo hemos hecho as por simplicidad, pero tambin lo podriamos haber realizado, de modo que el personaje, solo se moviera cuando mantenemos pulsada una tecla, no obstante, no es significativo. Los cdigos fuente para los fotogramas 27 y 36 realizan la misma funcin pero en el movimiento a la derecha: status="derandar"; if(jumping){stopAllSounds();}

gotoAndPlay("derandar"); Cdigo ActionScript del fotograma 40: stop(); status="paradofrente"; Simplemente para al personaje, no contiene animacin y establece el status paradofrente Los cdigos fuente para los fotogramas 45 y 54 son los relativos a la animacin de muerte: status="muerto";

stop();

A diferencia del movimiento a derecha e izquierda, aqu no repetimos la animacin y en el fotograma 54 la paramos con la sentencia stop(); No vamos a tener a nuestro personaje muriendo continuamente. A continuacin en la siguiente pgina 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 cdigo fuente ActionScript para el fotograma 1 del clip soldado_mc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

stop();

var t,vini,yini,a,IdIntervalJump,jumpDir; //Variables parar controlar la fisica del salto. var origy=this._y; //Posicion original y de nuestro soldado var jumping=false; //Sabemos si estamos saltando.

if (status=="derandar"){gotoAndPlay(2);}

var status="frente";

function gira_izquierda(){ switch(status){ case "frente": gotoAndPlay(2); break; case "derandar":

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 } } } }

gotoAndPlay(8); break; case "paradofrente": gotoAndPlay(2); break; case "muerto": break;

function gira_derecha(){ switch(status){ case "frente": gotoAndPlay(8); break; case "izqandar": gotoAndPlay(4); break; case "paradofrente": gotoAndPlay(8); break; case "muerto": break;

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

function anda_izquierda(){ gira_izquierda(); }

function anda_derecha(){ gira_derecha(); }

function parar(){ switch(status){ case "izqandar": gotoAndStop("paradofrente"); break; case "derandar": gotoAndStop("paradofrente"); break; case "muerto": break; } }

function salta(){

65 if (status=="frente" or status=="paradofrente" or status=="muerto" or jumping){return;} //Estando de frente no podremos saltar. 66 67 //Variables para control de velocidad de salotos t=0;

68 69 70 71 72

vini=6; a=-0.2; jumpDir="up"; yini=this._y; //Fin saltos

73 clearInterval(this.IdIntervalJump); //Nos aseguramos de borrar el intervalo de salto, antes de iniciar otro. 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 } } if (v0){ if(this.jumpDir=="up"){this._y=this.yini+yinc*-1}; if(this.jumpDir=="down"){this._y=this.yini+yinc}; } IdIntervalJump=setInterval(this,"salto_anim",25);

93 94 95 96 97 98 99 100 101 102 103 104 105 } }

if(this._y>=this.origy){ //Reestablecemos la posicin y del soldado this._y=this.origy; //Informamos de que el soldado no est saltando, para permitir otras acciones this.jumping=false; //Eliminamos el intervalo clearInterval(this.IdIntervalJump); }

function muere(){ gotoAndPlay("morir");

Realmente en este fotograma hemos generado todas las funciones para pasar a los estados correspondientes y que vimos anteriormente de nuestro protagonista. Adems daros cuenta, que aunque inicalmente hablamos de que nuestro protagonista, tendra la capacidad de salto, anteriormente no hemos visto generada ninguna capa para salto en la linea de tiempo generando una del funcion llamada clip. salta. Esto es debido a que realmente la forma de saltar de nuestro personaje, la hemos planteado Vamos a comentar todas las funciones de este cdigo para ver las acciones que realizan: funcion Realmente, anda_izquierda estas dos funciones las y podriamos funcion haber gira_izquierda: refundido en una.

No tienen demasiado misterio, y esque en funcin 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 accin. funcion anda_derecha y funcion gira_derecha:

Estas funciones son anlgas a las anteriores que hemos visto.

funcion ninguna accin. funcion anterior del cual procedamos. funcion salta y funcin

parar:

Tambin anloga a la anterior, ya que en funcin del estado en el que estamos, para o no realiza

morir:

Esta funcin directamente mueve la cabeza lectora al fotograma morir, sin importarle el estado

salto_anim:

Estas dos funciones, son las encargadas de simular un salto de nuestro protagonista. Realmente, la tcnica que van a utilizar es la de cambiar la propiedad _y de nuestro clip de pelcula en funcin de unas formulas determiandas. En la lnea 65 podes observar como existe una comprobacin 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 fsicas 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. Podes aprender mas acerca de este tipo de movimiento en Flash con otro tutorial que publicamos anteriormente aqu en redribera. La funcin salta, adems de inicializar estas variables (aceleracin, velocidad inicial, posicin inicial, sireccin del salto y tiempo), lo que hace es crear una funcin de intervalo (linea 74), previo a ello eliminamos algn posible residuo del intervalo que pudiera quedar (lnea 73). El intervalo se establece para la funcin 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 pelcula. LA funcin salto_anim() en realidad, utiliza la fsica que hemos establecido para calcular la posicin _y de nuestro clip soldado_mc en funcin del valor de las variables fsicas 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 posicin _y original), detenemos la animacin de la funcin (lnea 99) y reestablecemos la posicin original del clip (lnea 95). Esto es debido a que en los clculos fsicos, pudieramos tener una pequea desviacin del valor _y. Las lnes 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 veres mas adelante (ya lo utilizamos para saber si debemos parar el sonido de los pasos), porque segn la lgica de nuestro juego, no vamos a permitir cambiar de estado a nuestro personaje, cunado ste, est saltando. Solo con una excepcin, 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 lgica del juego, en la escena principal ser donde las realicemos. Si habes descargado el cdigo fuente, en la escena principal, la instancia de soldado_mc, llamada hombre (en el fotograma 2 de la escena principal), y desplegas las acciones para hombre, veres como all estn especificadas estas restricciones. Con la finalizacin de este soldado_mc, ya tenemos un clip de pelcula, que podemos insertar en otros clips de pelcula y que es capaz de soportar diferentes estados de animacin mediante la correcta llamada a las funciones que se declaran en el ActionScript del fotograma 1. Bajo estas lineas observares 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).

Efectivamente nuestro hombre cambia de estado segn pulsamos la tecla correcta. Nuestro hombre en estos momentos est esttico en la escena. Y llegado a este punto nos debemos plantear como se mover por la pelcula, para lo cual hay multitud de tcnicas.

Esto es todo, respecto al clip soldado_mc, seguidamente veremos como procesar la lgica de nuestro juego. Es decir el movimiento de nuestro personaje mediante la pulsacin de teclas, la IA de nuestro enemigo y la simulacin de movimiento con el desplazamiento del fondo del nivel.

http://www.es5.com/blackhat-seo/member-downloads/oreilly-collection-247271/?language=es