Posted on 02-10-2008
Filed Under (ActionScript, Desarrollo) by Programlocura

Buenas,

Hace tiempo que no escribia nada... Ya no tengo más excusas... :S

Pero bueno, hoy vuelvo con un tutorial sobre como levantar datos desde un *.txt a flash :)

Colocar en la escena:

  • Una caja de texto (Nombre de instancia: titulo_texto)
  • Una caja de texto (Nombre de instancia: texto)

El Actionscript:

Actionscript:
  1. myData = new LoadVars();
  2. myData.load("el_txt_que_quieran_levantar.txt");
  3.  
  4. myData.onLoad = function(succes) {
  5.     if(succes) {
  6.         titulo_texto.text = this["titulo"];
  7.         texto.text = this["texto"];
  8.     }
  9. }

Contenido del archivo de texto:

titulo=Titulo cualquiera&texto=Esto es un texto cualquiera que se va a levantar desde flash

Explicación:
Basicamente en el primer paso creamos una variable que va a proceder a cargar los datos levantados desde un archivo (con LoadVars).

La clase "LoadVars" tiene un metodo llamado "Load" al cual, como parametro debemos pasarle la ruta del archivo que deseamos abrir.

Creamos una funcion a la cual como parametro le pasaremos un "success" que indicará si se pudo o no abrir el archivo correctamente.
Preguntamos si "success" es verdadero (if (success)) Y levantamos los datos del archivo de la siguiente manera:

Actionscript:
  1. // This hace referenciá al objeto de la clase, o sea a myData.
  2. // Como vemos se llaman los nombres de las "variables" en el archivo de texto plano
  3. // que deberán estar declaradas con el formato que se pasan en PHP (Excepto que
  4. // la primera no necesitará "?").
  5. // Para agregár más variables al ejercicio bastará con anteponer un "&" y luego
  6. // colocando un nombre para esa variable.
  7. titulo_texto.text = this["titulo"];
  8. texto.text = this["texto"];

Espero les sea util! A mi se me hizo muy facil. Espero les sirva ;)

(0) Comments    Read More   
Posted on 29-07-2008
Filed Under (Personal) by Programlocura

Buenas, este post es corto porque quiero decir que sigo vivo a pesar de que no estoy posteando asiduamente!

Se me está complicando, prometo completar el código de la "Batalla Naval" (Para VB.NET) y luego seguir con los tutoriales de FLASH y PHP.

No me extrañen xD
Saludos.

(0) Comments    Read More   
Posted on 19-07-2008
Filed Under (ActionScript, Desarrollo, Game Development) by Programlocura

Como el mundo del Flash me está apasionando cada dia más, empezaré a comentar algunos proyectos que están excelentes y que en lo personal me encantan.

Rumblah - Flash Fighting Engine

Este es el caso de "Rumblah" que no es nada más y nada menos que un Motor de pelea en flash al mejor estilo M.U.G.E.N. No hace demasiado tiempo que se está desarrollando pero las imágenes ya son impactantes, lleva un muy buen ritmo de desarrollo y el mantener a los usuarios informados sobre el proyecto genera ganas de ver siempre un poco más.

Vista según el autor:

Rumblah! aspira a ser un motor de juegos de pelea hecho en Adobe Flash que permita crear personajes a cualquier persona que sepa animar en esta plataforma asi como tambien escenarios y ojala q tambien interfaces entre otras cosas. Tambien presentaria una manera simple y sin necesidad de conocimientos de programacion para poder agregar elementos creados por otras personas a el juego. Osea, un esqueleto de un juego de pelea el cual se ira armando a gusto de cada uno con los elementos disponibles online ya sea creado por mi o por otra gente, un MUGEN de Flash pero apuntando mas al contenido original

En un principio este proyecto fue generado para el "Concurso nacional de Videojuegos" (organizado por Ingenio y el Latu, aquí en Uruguay), pero creo que el proyecto tiene mucho más futuro que eso (aunque esperemos lo pueda ganar :D).

Les dejo un video para que se pueda apreciar lo increible que es el sistema a pesar de estar en una fase beta.

En la pagina hay sub-proyectos muy interesantes como "Rumblah! Short Fuse" que permite jugar "esporádicamente" recortando una cara y pegándola en un personaje genérico para jugar.

Un saludo para Rod F creador de este genial Engine!

Sitio oficial de Rumblah!

(1) Comment    Read More   
Posted on 12-07-2008
Filed Under (ActionScript, Desarrollo, Game Development) by Programlocura

Siguiendo con la nueva costumbre de publicar tutoriales de ActionScript (Una forma de ayuda memoria para mi y para el que le sirva) voy a dar unas pautas para hacer un Drag & Drop (Arrastrar y soltar) básico y lo mejoraremos para hacer algo parecido a un "puzzle".

Comencemos... :)


1. Objetivo


Antes que nada estableceremos el objetivo del tutorial. En los juegos en flash se utiliza mucho la técnica "Drag & Drop" (Arrastrar y soltar) para generar interactividad con el usuario, al final del tutorial podremos crear un objeto fácilmente arrastrable y además podremos colocarlo como pieza en una especie de puzzle, etc.


2. Lo más básico


Aquí podemos ver el primer resultado muy básico:

Esta pelicula requiere Flash Player 9


De esta manera vemos como simplemente clickeando sobre el objeto lo comenzamos a arrastrar y dejando de hacer click lo soltamos.
Como lo hacemos... ? Simplemente de esta manera:
En el Moviclip del personaje, bola, etc que quieras arrastrar:

Actionscript:
  1. on (press) {
  2.     this.startDrag();
  3. }
  4.  
  5. on (release) {
  6.     this.stopDrag();
  7. }

Sencillo ¿No? De esa manera tenemos un simple sistema para arrastrar un objeto, pero que si debemos arrastrar varios objetos y no queremos que se vea uno por debajo de otro? O sea, ¿Que el que estamos arrastrando sea el más alto?. Lo vemos a continuación:


3. Sobrepasando objetos

Actionscript:
  1. on (press) {
  2.         // El mismo código anterior pero con esta linea agregada.
  3.     this.swapDepths(_root.getNextHighestDepth());
  4.     this.startDrag();
  5. }

No hace falta demasiada explicación para esto. Lo que hace es seleccionar la mayor profundidad que haya en los movieclips en el root y pone a este ultimo (El que arrastramos) en el nivel más alto para que no se tenga problema para con pasar por debajo de los objetos.


4. La Teoría: Como hacer el puzzle


No tengo que dar la definición de puzzle supongo ya todos conocemos el juego de "armar" una imagen que esta rota en varios trozos y debemos encajarlos según sus cortes.
En este ejemplo usaremos una bola y su sombra. Deberemos encajar la bola en su sombra correctamente y ganaremos (facil no ? ;) )

Esta pelicula requiere Flash Player 9

- Como ?

Actionscript:
  1. on (press) {
  2.     this.swapDepths(_root.getNextHighestDepth());
  3.     this.startDrag();
  4. }
  5.  
  6. on (release) {
  7.     stopDrag();
  8.     if (eval(this._droptarget) == _parent.objetivo) {
  9.         this._x = _parent.objetivo._x;
  10.         this._y = _parent.objetivo._y;
  11.         _root.texto.text = "Correcto!";
  12.         this.enabled = false;
  13.     }
  14. }

Si bien el codigo aumentó no es nada del otro mundo, agregamos un poco más de lineas y lo más significativo está en esta linea:

Actionscript:
  1. if (eval(this._droptarget) == _parent.objetivo) {

Aqui preguntamos mediante eval (Para quitar la barra al path que devuelve el metodo _droptarget) si la posición donde se soltó el movieclip es igual a la del objetivo, si lo son se ejecuta un texto, sinó no lo hace.

Luego volveré con tutoriales más orientados a Gaming.

(10) Comments    Read More   
Posted on 06-07-2008
Filed Under (ActionScript, Desarrollo) by Programlocura

Hace tiempo que no posteaba tutoriales, asi que vamos a ver como crear Motion Tweens con Action Script 2.0.

Actionscript:
  1. // Función que Produce el Movimiento
  2. // ----------------------------------
  3. function floatMC(mc) {
  4. import mx.transitions.Tween;
  5. var posy = mc._y;
  6. var rel_posy = posy - 25;
  7.  
  8. var func = mx.transitions.easing.Back.easeInOut;
  9. var speed = 1;
  10.  
  11. var myTween:Tween = new Tween(mc, "_y", func, posy, rel_posy, speed, true);
  12.  
  13. myTween.onMotionFinished = function() {
  14. myTween.yoyo();
  15. }
  16.  
  17. }

No se preocupen, ya lo explico :P.
Yo lo creé en forma de función porque lo necesitaba usar para varios movieclips (Aunque podria haber hecho una función que moviese todos juntos, pero al final lo hice de esta forma) y creí que era la mejor opción.

Vamos por partes:
1. Lo que primero debemos hacer es importar la clase MotionTween. Con una simple llamada "import" está listo.

Actionscript:
  1. import mx.transitions.Tween;

2. Aquí simplemente declaro 2 variables (posy, rel_posy) una de ellas contiene la coordenada en _y del movieclip pasado por parámetro, y la otra contiene la posición relativa (Sumada a la posición actual) a la que deberá transportarse.

Actionscript:
  1. var posy = mc._y;
  2. var rel_posy = posy - 25;

3. Creamos otras 2 variables (func, speed) en las cuales almacenaremos la propiedad que determina el tipo de movimiento (mx.transitions.easing.[VARIOS].[VARIOS]) y uno que determina la velocidad del movimiento (speed).

Actionscript:
  1. var func = mx.transitions.easing.Back.easeInOut;
  2. var speed = 1;

Atención! Los posibles valores que puede tener la variable "func" son los siguientes:

  • Back – Extiende la animación sobre uno o ambos extremos del "Tween"
  • Bounce – Crea un efecto de rebote en la transición en uno o ambos extremos.
  • Elastic – Crea una mezcla entre el BOUNCE y el BACK.
  • Regular – Movimiento más lento sobre los extremos de la transición (uno o ambos).
  • Strong – Similar al regular más pronunciado cuando se combina con otros métodos de easing.
  • None – Movimiento lineal entre ambos extremos.

Uso: var func = mx.transitions.easing.[Reemplazar Aqui].easeInOut;
Ej.: var func = mx.transitions.easing.Regular.easeInOut;

4. Aquí declaramos la ultima variable a utilizar, llamada myTween (un objeto de la clase Tween) que tendrá como parámetros las cosas que determinamos anteriormente.

Actionscript:
  1. // Tween(movieclip, "parametro_movimiento", Tipo_Movimiento, Posicion_inicial, posicion_final, velocidad, usar_segundos_o_frames)
  2. // El ultimo parametro: "usar_segundos_o_frames" se determina con true o false, si se pone a true utiliza los segundos.
  3. var myTween:Tween = new Tween(mc, "_y", func, posy, rel_posy, speed, true);

5. Luego, haciendo referencia al objeto (myTween) utilizamos el metodo "onMotionFinished" de la manera que vemos abajo, y habiéndole indicado que se ejecute al finalizar el movimiento principal, ejecutamos el metodo "yoyo();" que nos permite hacer un loop del movimiento (ejecuta inversamente el movimiento inicial).

Actionscript:
  1. myTween.onMotionFinished = function() {
  2. myTween.yoyo();
  3. }

Ejemplo:

Esta pelicula requiere Flash Player 9

(0) Comments    Read More