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

movieclips y colisiones

Estas en el tema de movieclips y colisiones en el foro de Flash y Actionscript en Foros del Web. Hola tengo la siguiente situación: Tengo que mostrar en el escenario varios movieclips de tamaño medio. Los movieclips no deben solaparse. Si intento colocar un ...
  #1 (permalink)  
Antiguo 26/01/2007, 11:44
 
Fecha de Ingreso: enero-2007
Mensajes: 40
Antigüedad: 17 años, 3 meses
Puntos: 0
movieclips y colisiones

Hola tengo la siguiente situación:

Tengo que mostrar en el escenario varios movieclips de tamaño medio. Los movieclips no deben solaparse. Si intento colocar un movieclip en unas coordenadas (x,y) y este se solapa con otro movieclip, entonces debo recolocarlo. El nuevo lugar ha de ser lo mas cerca posible a donde lo queria colocar originalmente pero sin solapamiento en el escenario.

De otra manera: si encuentro que las coordenadas de un movieclip estan dentro de otro movieclip he de recolocar estas coordenadas para que no haya solapamiento. Que no lo haya con el movieclip que colisiona ni con los demas movieclips del escenario.

Bueno pues mi problema es:

No encuentro componentes ni apis para tener ayuda con esto. Necesitaria funciones para saber si un punto esta dentro de un movieclip, y lo mas complicado: algun algoritmo que me recoloque los puntos lo mas cerca al punto original hasta que no haya solapamientos con ningun movieclip del escenario.

Si ven que con algo m pueden ayudar les estare muy agradecidos.

Roberto.
  #2 (permalink)  
Antiguo 26/01/2007, 23:09
Avatar de César-Tenaz  
Fecha de Ingreso: agosto-2003
Ubicación: en Portoviejo
Mensajes: 899
Antigüedad: 20 años, 8 meses
Puntos: 0
Re: movieclips y colisiones

espero que sirva
on (press) {
//hace que se mueva
startDrag("el_que_se_mueve");
}
on (release) {
//detiene el moviemiento
stopDrag();
//detecta las coliciones
if (base.hitTest(this.el_que_se_mueve)) {
//asi evitas que se sobrepongan
el_que_se_mueve._x = base._x-el_que_se_mueve._width;
el_que_se_mueve._y = base._y-el_que_se_mueve._height;
}
}
__________________
odio el AS3
  #3 (permalink)  
Antiguo 28/01/2007, 07:51
 
Fecha de Ingreso: enero-2007
Mensajes: 40
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: movieclips y colisiones

Hola gracias por la ayuda.
La funcion hitTest me ha venido muy bien pues no la conocia.

Pero quisiera mejorar la recolocación del movieclip. Digamos que las lineas

el_que_se_mueve._x = base._x-el_que_se_mueve._width;
el_que_se_mueve._y = base._y-el_que_se_mueve._height;

son bastante deterministas. Pues, y que pasaria si la nueva posicion de el_que_se_mueve vuelve a solaparse con otro moviclip del escenario... Creo que tendriamos que hacer recursividad con hitTest hasta conseguir una posición que no solape y que ademas este lo mas cerca de base._x y base._y. Como implementamos esto??

Alguien puede ayudarme con este algoritmo de recolocación. Si hay algo por ahi o que alguien tenga algo hecho..

MUchas gracias.

Roberto
  #4 (permalink)  
Antiguo 28/01/2007, 20:16
 
Fecha de Ingreso: enero-2007
Mensajes: 9
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: movieclips y colisiones

es una pregunta interesante, pero me gustaria saber mas detalles, todo cambiaria, si el objeto viajero tiene inercia, o masa, si detiene su marcha en seco, etc...., pero creo que lo mejor seria crear objetos de una misma instancia.
  #5 (permalink)  
Antiguo 28/01/2007, 20:23
Avatar de César-Tenaz  
Fecha de Ingreso: agosto-2003
Ubicación: en Portoviejo
Mensajes: 899
Antigüedad: 20 años, 8 meses
Puntos: 0
Re: movieclips y colisiones

ya probaste agregar el hitTest a las bases, para que asi, el_que_se_mueve, sin importar porque razon se movio nunca se sobreponga

es decir, al momento de solapar una base, siempre haga el chequeo hitTest
__________________
odio el AS3
  #6 (permalink)  
Antiguo 03/02/2007, 13:29
 
Fecha de Ingreso: enero-2007
Mensajes: 40
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: movieclips y colisiones

Retomemos mi caso.

Veamos no se trata de objetos que estan en movimiento, pero quisé seguir el ejemplo que puso cesar para no liar mas la cosa (que ya es complicada de explicar).

Lo que mi programa hace es ir creando moviclips dinamicamente con algun contenido dentro. Son rectangulares y digamos que dentro dibujo etiquetas y pongo alguna información. Bien, pues cada vez que creo un moviclip dinámicamente (desde el codigo) tengo que checkear que no salape con ningun otro movieclip que haya colocado antes.
Bien, pues por no liar mas la cosa hice un supuesto de que el movieclip "el_que_se_mueve" era el movieclip que queria colocar, y "base" era el movieclip que con el que detectaba la colisión.

Bien, pues el ejemplo que puso cesar era bastante determinista. Por el hecho de que solo recolocaba intentando en un sitio cercano y ya esta. Ahora bien, de que manera podria montarmela para que pudiera colocar toda mi colección de moviclips sin que no se solaparan, y en el caso de detectar solapamiento conseguir aquella recolocación lo mas cerca de su sitio origen... ??


Gracias a todos.
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 15:30.