Juegos Isométricos con AS3. Scroll multidireccional

Introducción

En este tutorial, intentaré transmitirte una introducción de como programar un juego isométrico, utilizando el lenguaje de programación ActionScript 3.0, de la plataforma Flash. Pretendo mostrarte como crear un juego isométrico basado en tiles, gestionar mapas de niveles, y desplazarte por ellos mediante Scroll multidireccional.

Bajo estas líneas tienes el ejemplo de lo que pretendo explicarte (utiliza las flechas para mover a nuestro cubico heroe).

Get Adobe Flash player

 

Este tutorial viene derivado de una obra muy conocida en internet acerca del desarrollo de videojuegos en Flash. La obra de TONYPA, Tile based games , y concreatmente el apartado de Scrolling en vista isométrica.

 

Debería ser un requisito previo a la lectura de este tutorial, dar un vistazo al tutorial de TONYPA, sobre todo al apartado de Scrolling en vista isométrica, ya que allí se explica detalladamente la técnica utilizada para conseguir el Scrolling, con juegos Flash isométricos, basados en Tiles. Que resumido muy brevemente consiste en centrar a nuestro heroe en la pantalla y desplazar el fondo en el sentido contrario al movimiento de nuestro heroe (apoyandose en lo que podriamos llamar buffers de tiles, columnas y filas no visibles de reemplazo de Tiles).

Puesto que el tutorial de TONYPA ya tiene unos años de historia, este se redacto para el entonces popular lenguaje de Flash ActionScript 2.0 / 1.0 . Sin embargo en los últimos tiempos las mejoras instroducidas en ActionScript y la aparición de la versión 3.0 de ActionScript, hacen necesaria una adaptación de la obra de TONYPA a la nueva version de AS con los cambios que ello conlleva. Renovarse para mejorar!. Y no es otro, sino ese el objetivo de este tutorial. Adaptar a AS3 la obra de TONYPA concerniente al Scrolling Isométrico, con las ventajas que conlleva el desarrollo en AS3 y las posibilidades que ofrecen las nuevas versiones de Flash player (v9 y superiores ), en cuanto a rendimiento.

Ahora para seguir correctamente este tutorial, solo te falta descargar los archivos de ejemplo que he preparado con el código fuente de las clases y los ficheros fla, de este ejemplo que has podido visualizar arriba.

Juegos Isométricos, archivos de ejemplo del tutorial. (Comprimido ZIP. 172 Kb)

Empezamos !

 

De AS2 a AS3

Si anteriormente has programado para AS2, y AS3, sabrás que el cambio de filosofía de programación es enorme. Para empezar, AS3 ya es un lenguaje de programación orientado a objetos , lo cual requiere ciertas transformaciones al respecto del código utilizado por TONYPA. Si observas bien el código para AS2 de TONYPA, él intenta lograr una programación orientada a objetos con las posibilidades que entonces ofrecía AS2 para ello, los llamados prototypes. Así que el hecho de que TONYPA ya pensara entonces así, nos permite facilmente portar los objetos de su desarrollo a AS3, un lenguaje que ya incorpora clases para definir objetos (todo un visionario).

Otro de los puntos calientes con el que nos enfrentamos es el manejo de clips (MovieClips), que en AS2 eran los CreateEmptyMovieClip, y AttachMovie y que en AS3 cambian por el concepto de DisplayObjectContainer y las listas de objetos visibles, gestionadas por los métodos addchild, addChildAt, removeChild, etc... De esto ya se ha hablado mucho, y podemos decir que es lo primero a lo que se enfrenta quien comienza a programar con AS3. Así que su conversión debería estar "casi chupada!".

Pero el punto mas complejo al que nos enfrentamos si queremos reutilizar las técnicas de TONYPA, es sin duda el manejo de las profundidades (el orden) de los objetos visibles y como se solapan entre ellos. Es el famoso depth de AS2. Este concepto desaparece por completo en AS3, al menos la forma de gestionarlo. Gestionar el orden de visualización de los elementos visuales (los tiles), es vital en el desarrollo de juegos isométricos, pues en la sensación de 3D que ofrecen los tiles (con altura), es vital controlar la forma en que se solapan unos tiles con otros y con los personajes del juego, para dar la sensación de profundidad según la posición. Es aquí donde viene mi aporte personal , en la técnica utilizada. Se que no es la mejor y que posiblemente se puede mejorar, y en ello estamos, pero de momento los resultados son aceptables. Así que esto y alguna pequeña modificación mas al respecto del desarrollo original de TONYPA es en lo que vamos a centrarnos brevemente.

No comentaré todo el código, pero si las partes que creo mas interesantes, y por supuesto espero vuestros comentarios para que entre todos los usuarios podamos mejorar esto!

Vamos con los fuentes (el enlace para su descarga está mas arriba).

 

Siguiente página »