Cristalab

                 ¿Quieres registrarte?

Ejemplo de guía para Mapas en juegos tipo Mario 3

Por: AXM
2 de Noviembre del 2007
455 de clabLevel
Otros artículos de AXM
18,917 visitas

Este es un mapa que trata de imitar al de Mario 3. Esta hecho en ActionScript 3.


(Mover las flechas del teclado para que se mueva Mario)


En el FLA hay un MovieClip que se llama puntos. Aquí dentro están todos los puntos que le van a decir a Mario donde parar. También hay otro Movie Clip que se llama lineas, que le sirve a Mario de Guía.

Lo que me gusta del código, es que Mario se guía no por el código, si no por los puntos y lineas que hay en el FLA. Esto hace que uno pueda hacer cualquier camino, en cualquier configuración de manera gráfica, y no por código.
En esta flash, se entiende mejor como funciona.


(Mover las flechas del teclado para que se mueva Mario)


Código :

package 
{
   import flash.display.*;
   import flash.events.*;
   import flash.ui.Keyboard;
   import flash.utils.Timer;

   public class Mario extends MovieClip
   {

      private var enMovimiento:Boolean = false;
      private var temporizador:Timer = new Timer(10,0);
      private var teclaPulsada:uint;
      private var contendorPuntos:Sprite = new Sprite();

      private var contactoConCamino_Arriba:Boolean;
      private var contactoConCamino_Abajo:Boolean;
      private var contactoConCamino_Izquierda:Boolean;
      private var contactoConCamino_Derecha:Boolean;

      public function Mario()
      {
         lineas.visible = false;
         puntos.visible = false;
         stage.addEventListener(KeyboardEvent.KEY_DOWN,tecla);
         temporizador.addEventListener(TimerEvent.TIMER,mover);
      }
      private function tecla(e:KeyboardEvent):void
      {
         if (enMovimiento == false) {
            this.contactoConCamino_Arriba= false;
            this.contactoConCamino_Abajo= false;
            this.contactoConCamino_Izquierda= false;
            this.contactoConCamino_Derecha= false;

            teclaPulsada = e.keyCode;
            palparCaminos();
            temporizador.start();
            enMovimiento = true;
         }

      }
      private function mover(e:TimerEvent):void
      {

         var velocidad:uint = 2;

         if (teclaPulsada == 39 && this.contactoConCamino_Derecha == true) // 39 es RIGHT
         {
            mario.x += velocidad;
         }
         if (teclaPulsada == 37 && this.contactoConCamino_Izquierda== true) // 37 es LEFT
         {
            mario.x -= velocidad;
         }
         if (teclaPulsada == 38 && this.contactoConCamino_Arriba == true) // 39 es UP
         {
            mario.y -= velocidad;
         }
         if (teclaPulsada == 40 && this.contactoConCamino_Abajo== true) // 40 es DOWN
         {
            mario.y += velocidad;
         }

         for (var i:uint = 0; i <= puntos.numChildren-1; i++) {
            // En el mc llamado mario hay un MC llamado centro que sirve como detector..
            // ... de coliciones
            // Si centro coliciona con cualquier punto se detiene
            if (mario.centro.hitTestObject(puntos.getChildAt(i)) == true) {
               temporizador.stop();
               enMovimiento = false;
            }
         }
      }
      // Funcion que le indica a Mario, que caminos puede cojer
      // Mas tecnico. Dependiendo de que lineas tenga arriba, abajo, derecha o izquierda...
      // ...se podra mover en una direccion
      // En el MC llamado mario hay 4 MC que sirven como vigotes de un gato, para saber..
      // que lineas tiene cerca

      private function palparCaminos():void
      {
         for (var i:uint = 0; i <= lineas.numChildren-1; i++) {
            if (mario.arriba.hitTestObject(lineas.getChildAt(i)) == true) {
               this.contactoConCamino_Arriba= true;
            }
            if (mario.abajo.hitTestObject(lineas.getChildAt(i)) == true) {
               this.contactoConCamino_Abajo= true;
            }
            if (mario.izquierda.hitTestObject(lineas.getChildAt(i)) == true) {
               this.contactoConCamino_Izquierda= true;
            }
            if (mario.derecha.hitTestObject(lineas.getChildAt(i)) == true) {
               this.contactoConCamino_Derecha= true;
            }
         }
      }
   }
}


Descargar archivos


Artículos Relacionados


Etiquetas actionscript_3

Comentarios | Enviar un comentario
Buen tip, muy útil para muchos tipos de juegos (y)
Por: Zguillez
Estupendo ^^

Me ha gustado mucho tu tip (y)
Por: XKlibur
Que buen tip, fácil de entender y listo para usar! :)
Por: Sisco
excelente ^^ (Y)
Por: eldervaz
K buen tip, se agradece.
*Pensando en hacerse un Pacman ^^
Por: Otaku RzO
Muy buen tip, pero no estaria de mas agregar un poco mas de comentarios, para los despistados como yo que aun se les van algunas cosas, serviria mucho para los que quieren meterse de lleno a actionscript 3, puesto que veo que efectivamente, estamos hablando ahora si por completo de POO, y aun hay cosas que se me escapan de eso.
Gracias amigo, repito, excelente tip.
Por: Señor Oz_blog

Señor Oz_blog :

Muy buen tip, pero no estaria de mas agregar un poco mas de comentarios, para los despistados como yo que aun se les van algunas cosas


Lo siento Señor Oz, pero el infinito sistema burocrático de Cristalab me impide hacerlo.
Por: AXM

AXM :

Señor Oz_blog :

Muy buen tip, pero no estaria de mas agregar un poco mas de comentarios, para los despistados como yo que aun se les van algunas cosas


Lo siento Señor Oz, pero el infinito sistema burocrático de Cristalab me impide hacerlo.
Excuse me WTF?
Por: Freddie
no entendi
Por: yo_blog

yo_blog :

no entendi
¿Quieres que protección social te de una subvención de por vida?
Por: Freddie
es una porquria el juego pero esta re bueno
Por: cachi_blog
cachi...no es un juego ¬¬ , solo son los "movimientos" del que vendria a interpretarse como el personaje...en este caso llamado mario. Estoy pensando en crearme un pacman....despues veo...buen tip!

muy util para algunos que todavia no estan a fondo con el flash, y AS,

saludos a todos!
Por: brian_linkin_park@live.co
Me parece muy bueno el codigo, ademas es sencillo de entender aunque hay algunas cosas que no he estudiado mucho las pondre en practica, soy fanatico de diseñar juegos en Flash, pero aun soy un principiante, he creado varios demos de movimientos, animaciones y minijuegos con la utilizacion de Java Script en flash, pero aun tengo mucho que aprender... mis juegos se basan en estilos tradicionales como Mario, Pokemon, Zelda... y algunos con acciones de click, como MoNOPolY... en fin... pero solo son pequeños Jueguitos, me gustaria compartir mis conocimientos e ideas con alguien que le interecen estos temas y ampliar juntos nuestros conocimientos... gracias Interesados en ayudarme Comunicarce: okiloco2@hotmail.com
Por: okiloco_blog
mira cuidate mucho para `no tepa como ami
Por: hola _blog
estoy pensando en hacer algo parecido pero con el mouse.... lo veo un poco mas complicado.
Por: katze
no lo e entendido
Por: piolin-blog
buen tip!! muchas gracias me ha sido de mucha utilidad..
Por: fredybg
hola me llamo giselle y soy niña y tu
Por: giselle -blog

giselle -blog :

hola me llamo giselle y soy niña y tu
Me llamo Freddie y soy asesino en serie :)
Por: Freddie

giselle -blog :

hola me llamo giselle y soy niña y tu


Hola me llamo Koeth, y soy perverth en mis ratos libres ^^
Por: Koeth

giselle -blog :

hola me llamo giselle y soy niña y tu

Hola me llamo Zguillez y soy adicto a las zetas
Por: Zguillez

giselle -blog :

hola me llamo giselle y soy niña y tu

hola giselle me llamo tribak y soy un vendedor de Bon-Ice
Por: tribak
oigan q raro juego e nacos de navooooO
Por: keny-blog
o0la a to0do0x mi fans lo0s kiero0 m
Por: o0la me llamo0 sheryl-blo
vaya peazo` de mierda
Por: anonimo-blog
buen flash
aca leyendolo

---

pero es Bigote
Por: talavang-blog
hace casi un mes que quiero crear un juego de mario en flash espero que esto me sirva
Por: mario-blog-blog
es un asco
Por: lucia moudelle-blog
¿no me gusto nadita?
Por: Eliana-blog
hola que tal gracias por este aporte pero si seria bueno que nos dieras mas detalles de el movimiento del fondo y todas esas cosillas que hacen falta y no me quiso abrir el formato del flas solo el de action me dice que es inesperado

Gracias
Por: carlos rodriguez-blog
es fantatico muy muy buena
Por: micaela -blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.