Foros del Web » Creando para Internet » Flash y Actionscript »

ayuda movieclip

Estas en el tema de ayuda movieclip en el foro de Flash y Actionscript en Foros del Web. Tengo un movie clip que es un recuadro, con el interior vacio, es decir como si fuera un marco de un cuadro. Tambien tengo un ...
  #1 (permalink)  
Antiguo 15/09/2004, 02:32
 
Fecha de Ingreso: marzo-2004
Ubicación: bilbo
Mensajes: 54
Antigüedad: 20 años
Puntos: 0
ayuda movieclip

Tengo un movie clip que es un recuadro, con el interior vacio, es decir como si fuera un marco de un cuadro. Tambien tengo un bola, y lo que quiero hacer es que esta bola se mueva por dentro del recuadro y que cuando golpee contra un borde que rebote y vaya en otra direccion, como si fuera un billar. Gracias
  #2 (permalink)  
Antiguo 15/09/2004, 11:27
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Eso explicarlo aquí va a ser difícil, a ver, ahí va:

Teniendo en cuanta los limites del marco así tienes limites inferior y superior de los ejes x e y.

Supongamos que x.inferior=0 y x.superior=100, y.inferior=0 e y.superior=100.Yo no voi a tener en cuenta la altura y el alto de la bola,voi a suponer que esun punto pero si la tiene hay que tenerla en cuenta.En el primer keyframe del mc pones(lo voi a poner con terminologia sencilla sin tener porque ser actionscript, tu despues sabrás pasarlo):

if(flag=0){
bola.x++;
bola.y++;
}
if(flag=1){
bola.x--;
bola.y--;
}
if(flag=2){
bola.x++;
bola.y--;
}
if(flag=3){
bola.x--;
bola.y++;
}
if(bola.x==100 Y bola.y==100){
flag=1;
}
if(bola.x==0 Y bola.y==0){
flag=0;
}
if(bola.x==100 Y bola.y<100){
if(flag==0){
flag=3;
}
if(flag==2){
flag=1;
}
}
if(bola.x<100 Y bola.y==100){
if(flag==0){
flag=2;
}
if(flag==3){
flag=1;
}
}
if(bola.x==0 Y bola.y>0){
if(flag==1){
flag=2;
}
if(flag==3){
flag=0;
}
}
if(bola.x>0 Y bola.y==0){
if(flag==1){
flag=3;
}
if(flag==2){
flag=0;
}
}

y en el segundo pones gotoAndPlay(1).
En ambos tienes que poner la bola y el marco. Y fuera del mc pones:
nombre_del_mc.flag=0; y pones la bola en unas coordenadas iniciales que no esté al borde del marco.

La verdad que se puede hacer más sencillo pero es la forma que se me ha ocurrido, si quieres te lo puedo explicar mejor. Un saludo.
  #3 (permalink)  
Antiguo 16/09/2004, 04:11
 
Fecha de Ingreso: marzo-2004
Ubicación: bilbo
Mensajes: 54
Antigüedad: 20 años
Puntos: 0
El codigo lo he mirado y esta bien, pero tengo un problema, cuando la pelota llega a cualquiera de los limites, no me cambia el flag, es decir que la comparacion no me funciona, he comprobado mil cosas para ver si los limites estan bien pero no hace nada, sigue la direccion sin cambiar de sentido.

if (flag == 0){
bola._x++;
bola._y++;
}
if (flag == 1){
bola._x--;
bola._y--;
}
if (flag == 2){
bola._x++;
bola._y--;
}
if (flag == 3){
bola._x--;
bola._y++;
}
if (bola._x == 717 && bola._y == 517){
flag=1;
}
if (bola._x == 55 && bola._y == 55){
flag=0;
}
if (bola._x == 717 && bola._y < 517){
if (flag == 0){
flag=3;
}
if (flag == 2){
flag=1;
}
}
if (bola._x < 717 && bola._y == 517){
if (flag == 0){
flag=2;
}
if (flag == 3){
flag=1;
}
}
if (bola._x == 55 && bola._y > 55){
if (flag == 1){
flag=2;
}
if (flag == 3){
flag=0;
}
}
if (bola._x > 55 && bola._y == 55){
if (flag == 1){
flag=2;
}
if (flag == 3){
flag=0;
}
}
  #4 (permalink)  
Antiguo 16/09/2004, 05:58
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Creo que así ya va:

texto.text=flag;
coorx.text="x="+bola._x;
coory.text="y="+bola._y;

if (flag == 0){
bola._x++;
bola._y++;
}
if (flag == 1){
bola._x--;
bola._y--;
}
if (flag == 2){
bola._x++;
bola._y--;
}
if (flag == 3){
bola._x--;
bola._y++;
}
if (bola._x >= 717 && bola._y >= 517){
flag=1;
}
if (bola._x <= 55 && bola._y <= 55){
flag=0;
pruebas.text="entrado1";
}
if (bola._x >= 717 && bola._y < 517){
if (flag == 0){
flag=3;
}
if (flag == 2){
flag=1;
}
}
if (bola._x < 717 && bola._y >= 517){
if (flag == 0){
flag=2;
}
if (flag == 3){
flag=1;
}
}
if (bola._x <= 55 && bola._y > 55){
if (flag == 1){
flag=2;
}
if (flag == 3){
flag=0;
}
}
if (bola._x > 55 && bola._y <= 55){
if (flag == 2){
flag=0;
}
if (flag == 1){
flag=3;
}
}

Las tres primeras lineas son de cajas de texto dinamico para ir viendo las coordenadas y el valor de flag, para corregir errores. De todos modos si te falla tienes que ir viendo las posibilidades, saber por qué coge un camino y no el que tu quieres. Espero que te haya servido. Un saludo.
  #5 (permalink)  
Antiguo 16/09/2004, 06:23
 
Fecha de Ingreso: marzo-2004
Ubicación: bilbo
Mensajes: 54
Antigüedad: 20 años
Puntos: 0
ahora si, y era la tonteria esa de los conparadores,dioss!!!! muchas gracias
  #6 (permalink)  
Antiguo 16/09/2004, 06:25
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
De nada. Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:47.