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

Me ha gustado mucho tu tip
*Pensando en hacerse un Pacman
Por Señor Oz el 06 de Noviembre de 2007
Gracias amigo, repito, excelente tip.
Señor Oz_blog :
Lo siento Señor Oz, pero el infinito sistema burocrático de Cristalab me impide hacerlo.
AXM :
Señor Oz_blog :
Lo siento Señor Oz, pero el infinito sistema burocrático de Cristalab me impide hacerlo.
Por yo el 09 de Enero de 2008
yo_blog :
Por cachi el 16 de Enero de 2008
Por brian_linkin_park@li el 27 de Enero de 2008
muy util para algunos que todavia no estan a fondo con el flash, y AS,
saludos a todos!
Por okiloco el 14 de Febrero de 2008
Por hola el 01 de Marzo de 2008
Por piolin el 27 de Abril de 2008
Por fredybg el 23 de Mayo de 2008
Por giselle el 11 de Julio de 2008
giselle -blog :
giselle -blog :
Hola me llamo Koeth, y soy perverth en mis ratos libres
giselle -blog :
Hola me llamo Zguillez y soy adicto a las zetas
giselle -blog :
hola giselle me llamo tribak y soy un vendedor de Bon-Ice
Por keny el 18 de Octubre de 2008
Por o0la me llamo0 shery el 17 de Noviembre de 2008
Por anonimo el 18 de Noviembre de 2008
Por talavang el 06 de Diciembre de 2008
aca leyendolo
---
pero es Bigote
Por mario-blog el 09 de Diciembre de 2008
Por lucia moudelle el 24 de Marzo de 2009
Por Eliana el 12 de Mayo de 2009
Por carlos rodriguez el 28 de Junio de 2009
Gracias
Por micaela el 01 de Julio de 2009
Por MELODI el 27 de Septiembre de 2009
Por estela el 06 de Enero de 2010
Por josi el 25 de Enero de 2010
Por Wanbee el 25 de Junio de 2010
Por maria alejandra las el 29 de Junio de 2010
Por joss el 28 de Julio de 2010
gracias
Por JOSS el 02 de Agosto de 2010
lo necesito urgente
muchas gracias
Por anonimo el 13 de Octubre de 2010
Por poncho jr el 07 de Noviembre de 2010
Por laure el 23 de Septiembre de 2011
Por fer el 08 de Mayo de 2012