Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/03/2005, 00:12
ByronNeo
 
Fecha de Ingreso: febrero-2005
Mensajes: 58
Antigüedad: 19 años, 2 meses
Puntos: 0
Bueno la cosa es relativamente sencilla...

Primero creas el laberinto con sus paredes... bien play .... y lo conviertes en un MC ("MovieClip" solo por si aca... ), luego como ya tenés echo el joven que recorre el laberinto, y supongo que también está echo ya el código para responder al teclado o al ratón para que se mueva horizontal y verticalmente, simplemente, le ponés al MC_Joven (se me ocurre así...), en el evento EnterFrame un código similar a este, (aunque creo que debes adecuarlo bastante bien dependiendo del código que recibe los eventos para moverlo, en el siguiente ejemplo le dí movimiento al MC_Joven a través de la posición del mouse si se encuentra encima de MC_Joven se mueve haciar arriba y así el resto)

onClipEvent(enterFrame)//Este código se le aplica a MC_Joven
{
//Para mover MC_Joven por la pantalla con el mouse
if(this._ymouse < 0)
_y-=2;
if(this._ymouse > 25)
_y+=2;
if(this._xmouse < 0)
_x-=2;
if(this._xmouse > 25)
_x+=2;

//Para detectar colisiones
JovenCoordenadas = this.getBounds(_root);//Toma coordenadas actuales en terminos de _root
if(_root.Laberinto.hitTest(JovenCoordenadas.xMin, _y, true))//Linea 1
_x+=2; // Linea 2
if(_root.Laberinto.hitTest(JovenCoordenadas.xMax, _y, true))
_x-=2;
if(_root.Laberinto.hitTest(_x, JovenCoordenadas.yMin, true))
_y+=2;
if(_root.Laberinto.hitTest(_x, JovenCoordenadas.yMax, true))
_y-=2;
}

Donde dice Linea 1 se explica así:
vamos a verificar si Laberinto golpea con Joven

JovenCoordenadas.xMax es el pixel en el eje x más alto de MC_Joven y _y es el centro de MC_Joven, el true es para que tenga en cuenta toda la forma de Laberinto y no solo el rectangulo de forma exterior, así que con esta opción verificamos si el pixel que se encuentra en el centro horizontal y en la parte superior de MC_Joven golpea en algún lugar con Laberinto, si es así disminuimos el valor del eje x de MC_Joven, para que quede en la posición antes de golpear con Laberinto...

Bueno no se si quedó muy claro, pero la versión Flash MX tiene un .fla que se llama MAZE.FLA que es justo lo que vos necesitas y el código es bastante similar aunque un poco más complejo, el MAZE.fla lo encuentras en archivos de programa/macromedia/flash mx/samples/...

Espero sirva de algo...