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

posicion _x y _y aleatoria

Estas en el tema de posicion _x y _y aleatoria en el foro de Flash y Actionscript en Foros del Web. Hola, estoy aprendiendo flash, me compré el libro de ActionScript para Flash Mx de D. de la Cruz. En él, te va poniendo ejemplos de ...
  #1 (permalink)  
Antiguo 27/07/2005, 09:43
 
Fecha de Ingreso: junio-2004
Mensajes: 20
Antigüedad: 19 años, 10 meses
Puntos: 1
Pregunta posicion _x y _y aleatoria

Hola, estoy aprendiendo flash, me compré el libro de ActionScript para Flash Mx de D. de la Cruz.

En él, te va poniendo ejemplos de programación, y en uno de ellos me han surgido dudas.

Me da un poco de vergüenza preguntar eso, debo ser tonta, porque seguro q es una tontería pero no lo entiendo.

Os explico. Se trata de duplicar elementos de clip de película.

El escenario es de 350x350, dentro hay un recuadro de 330x330. Se trata de duplicar, mediante codigo, el elemento objeto (un cuadrado de 25x25) aleatoriamente sin q se salga del recuadro.


El código q usa es el siguiente:

en la capa acciones:

en el 1º fotograma:

objeto0._x=10+objeto0._width/2+((330-objeto._width)*Math.random());
objeto0._y=10+objeto0._width/2+((330-objeto._width)*Math.random());
objeto0.texto=objeto0._name.substr(6,2);
i=1;


en el 2º:
objeto0.duplicateMovieClip("objeto"+i,i);
this["objeto"+i]._x=10+objeto0._width/2+((330-objeto0._width)*Math.random());
this["objeto"+i]._y=10+objeto0._width/2+((330-objeto0._width)*Math.random());
this["objeto"+i].texto=this["objeto"+i]._name.substr(6,2);

y en el 3º:
i++;
if (i<=99){
this.gotoAndPlay(_currentframe-1);
} else {
stop();
}

Entiendo todo, menos lo q se refiere a la primera parte de las lineas referentes a las posiciones _x y _y.

Pues la segunda parte (lo de ((330-objeto0._width)*Math.random()), lo entiendo, pone un valor aleatorio dentro del recuadro. También entiendo q al principio, le suma 10 porque es el margen y para q así no se salga del recuadro, lo q no entiendo es porque le suma la mitad de la anchura del objeto (+objeto0._width/2).

No veo el porque se debe poner, pero si se lo quito, entonces se sale por la derecha, entonces se debería de restar, en lugar de sumar, no?, pero si lo resto se sale de la izquierda. En fin, q no lo entiendo. Cuando le pones lo de ((330-objeto0._width)*Math.random() y ademas le sumas el 10 de margen, ya le dices q sean valores dentro de ese recuadro, no?

En fin, espero q me podais ayudar,

gracias por adelantado
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 06:21.