Comunidad de diseño web y desarrollo en internet online

colision inteligente

Citar            
MensajeEscrito el 15 Jul 2006 02:03 am
hola a todos.

tengo una duda.
hay alguna forma con actionscript, en que un objeto circular me pueda devolver el nombre de todos los objetos con los que colisiona su diametro?

gracias

Por PoeTux

6 de clabLevel



 

blazer
Citar            
MensajeEscrito el 15 Jul 2006 08:02 am
pues cuando un objeto colisione con el circulo pon un trace(this._name) eso debería de devolverte el nombre del objeto

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

clabbrowser
Citar            
MensajeEscrito el 17 Jul 2006 08:25 pm

_CONEJO escribió:

pues cuando un objeto colisione con el circulo pon un trace(this._name) eso debería de devolverte el nombre del objeto
\A ver.... creo que no me expliqué bien.
Tengo una serie de objetos en pantalla, cada uno es un MC con un circulo _alpha=100, por lo que el circulo del MC, sólo sirve para delimitar un diametro.
El chiste es que quiero que cada uno de estos MC con su circulo pueda detectar cuales son los nombre de los otros MCs que tiene alrededor, en cuanto yo genere un evento MouseOver. No voy a mover ningun elemento en la pantalla, por lo que no voy a hacer las colisiones interactivas, sino que quiero que estas colisiones sean inteligentes, cada MC puede detectar por medio del evento MouseOver, cuales son sus vecinos.

TNX,
Salu2

Por PoeTux

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Jul 2006 01:13 am
Podes hacerlo de muchas maneras, las colisiones son una ciencia en si misma, estaba redactando un artículo muy largo al respecto, pero de repente me encontré que mi web había explotado y tuve que redirigir esfuerzos.
:-P
En fin, tratando de contestar a tu pregunta, si no entiendo mal, lo que querés es hacer que un objeto movieclip que devuelva un array o una lista de todos los objetos que colisionan con el, no?
Bueno, primero lo que yo haría es, una vez creados los movieclips y asignado un nombre de instancia, hagas un script donde definas un array de objetos movieclips que contenga todos los que serán "colisionables", es decir, los que intervienen en la colisión
.
En cada objeto, le agregás un método que permita medir la distancia entre el centro de si mismo y el centro de todos los demás. Si la distancia es menor a la suma de los radios de los objetos intervinientes en la colisión, entonces esos dos objetos están en contacto(las colisiones entre esferas son las mas sencillas) no uses hittest porque podés degradar la performance.

Podés obtener mas info consultando "Thomas Jakobsen" en internet, el tiene un artículo de colisiones muy groso. Por otro lado, la formula de la distancia euleriana es:

d = Math.sqrt((mc._x-mc1._x)*(mc._x-mc1._x)+(mc._y-mc1._y)*(mc._y-mc1._y));

donde mc y mc1 son los movieclips que intervienen en la colision(calculá de a dos). Te recomiendo también un libro llamado "Flash MX game programming desmitified", tiene un apartado de colisiones con lo elemental y mucho mas.

Espero haberte entendido y que esto te sirva.

Saludos!!

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

firefox

 

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