Comunidad de diseño web y desarrollo en internet online

Mover si no choca con nada

Citar            
MensajeEscrito el 01 Mar 2006 05:41 pm
Buenas, estoy intentando aprender AS para hacer minijuegos, pero ya voy topandome con los primeros problemas.

El caso es que creo una pelota, le pongo nombre de instancia Prota, y una pared con nombre Pared (Incluso tiene su lógica xD) y lo que quiero es que si la pelota no está chocando con la pared pueda moverse para un lado u otro. Pruebo a poner el siguiente código y no me responde, ni se mueve.

Código :

stop();
var Choque;
this.onEnterFrame = function () {
   Choque = Prota.hitTest(Pared);
   if(Choque = false){
      Movimiento.call();
   }
}
Movimiento = function (){
   if(Key.isDown(Key.LEFT)){
      Prota._x -= 5;
   }
   if(Key.isDown(Key.RIGHT)){
      Prota._x += 5;
   }
}

   


¿Alguien le encuentra el fallo?
:crap:

Por Neodivert

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Mar 2006 06:38 pm
Prueba esto (lo probé y funcionó):

Código :

stop();
this.onEnterFrame = function() {
   Choque = Prota.hitTest(Pared);
   if (!Choque) { // esto ! significa negación, de la otra forma sería Choque == false (2 =)
      Movimiento(Prota); //Llama a la función así, no con call();
   }
};
function Movimiento(mc:MovieClip) { //me gusta más declarar las funciones así...jejejeje. La hice un poco más reutilizable
   if (Key.isDown(Key.LEFT)) {
      mc._x -= 5;
   }
   if (Key.isDown(Key.RIGHT)) {
      mc._x += 5;
   }
};

Espero te sirva, :wink:

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 01 Mar 2006 11:52 pm
¡How, muchas gracias por la ayuda! :o, pero una preguntilla.


El "Movimiento(Prota)" para llamar la función y el "function Movimiento(mc:MovieClip)" para declararla, donde los viste, por que yo los aprendo de la ayuda, que la tengo actualizada y me sigue saliendo el call(); y el Movimiento = function (){} :crap:

Por Neodivert

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Mar 2006 01:19 pm
Es que no es nada del otro mundo, existen diferentes formas de hacerlo y a mí me gusta más de esa forma (es más general a otros lenguajes).
Mira esto:

Código :

//-----**** EJEMPLO 1 -----****
// el código siguiente sí funciona porque se está llamando a una función con nombre:
myWidth();
function myWidth() {
    trace("foo");
}
//-----**** EJEMPLO 2 -----****
// el código siguiente no funciona porque se está llamando a una función anónima:
myWidth();
var myWidth:Function = function () {
    trace("foo");
};

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.