Saludos ANWMPerU
Quisiera su orientacion para hacer funcionar lo siguiente:
Estoy tratando de hacer que cuando 1 carro (x_mc) colisione con una barrera que tiene en frente (murodelante_mc), voltee para continuar pero en sentido contrario.
Puse asi (todo en el frame 1):
stop();
velocidad=15;
//---- la funcion para q el carro vaya a la derecha
function combiderecha(){
x_mc._x+= velocidad;
}
//---- la funcion para q el carro vaya a la izquiera
function combiizquierda(){
x_mc._x-= velocidad;
}
x_mc.onEnterFrame= function(){
if(this.hitTest(murodelante_mc)){
this._xscale= -100;
delete combiderecha(); //->ASI QUISE SOLUCIONARLO, pero nada
combiizquierda();
}
else{
combiderecha();
}
}
Se que estoy en la ruta (¿verdad?)... pero aun no me sale.
Sigo viendo la forma... ojala puedan ayudarme
Gracias y saludos...
Alex
orientación
Hola Alex,
En primer lugar te explicaré porqué no te resulta y luego la solución...
Al usar "onEnterFrame" te has metido en un bucle, la condición cumple pero en el instante siguiente es como si fuera todo como antes, asà que tu objeto va al sentido opuesto Y NO CUMPLE CON LA CONDICION empiezas a chocar infinitamente.
Para comprenderlo mejor lee esto, cada linea es un instante de "onEnterFrame":
...
derecha
derecha
derecha
derecha
derecha
Cumple con la condición y va por primera vez a izquierda
se movió a la izquierda y ahora NO cumple con la condición, entonces va a derecha.
Cumple con la condición y va por segunda vez a izquierda
se movió a la izquierda y ahora NO cumple con la condición, entonces va a derecha.
Cumple con la condición y va por tercera vez a izquierda
....
y esto produce que tu objeto va y viene pero no va más lejos nunca, la solución rápida serÃa usar un flag... de esta manera:
//-------------------------------------------
stop();
velocidad=1; // Lo puse bien lento jejeje
function combiderecha(){
bola._x+= velocidad;
}
function combiizquierda(){
bola._x-= velocidad;
}
//
var k=0; // ESTE ES EL FLAG
bola.onEnterFrame = function() {
if (bola.hitTest(muro) ) {
k=1; // "k" cambia en la primera colición
}
if ( k=='1') {
combiizquierda();
}
if ( k=='0') {
combiderecha();
}
};
//-------------------------------------------
Ok, le cambié algunas cosas para probarlo y hacer que funcione, asà que tengo el fuente también, creo que no será necesario jajajjajajajja ¿o si?
Saludos
Joel Hoyos
gracias joel
gracias joel, acabo de entrar de nuevo recien... probare la solucion que me das. Me sirvio de mucho la explicacion detallada que me diste.
Gracias por la ayuda...
saludazos
Alex
1 diseñador queriendo ser programador...
www.lexmaster.blogspot.com