Comunidad de diseño web y desarrollo en internet online

Colisiones dentro de una circunferencia

Citar            
MensajeEscrito el 26 Abr 2008 01:55 am
Hola a todo mundo en este foro. Soy un diseñador adentrandose en el mundo de la programación con física y matematica. Por el momento estoy haciendo un minijuego pero necesito ayuda para un problema de colisión entre circulos dentro de una circunferencia. El objetivo de este proyectito es hacer en un principio una circunferencia que va a ser el delimitador donde ban a rebotar pequeñas pelotas, respetando el angulo de colisión en cada punto de la misma circunferencia (como una especie juego de ping pong) pero una circunferencia como escenario delimitador y tambien respetando el choque y ángulo al momento de impactarse dos o mas pelotas entre si. URGE UN POCO, por fa a ver si me pueden échar la mano

Por manuDER

0 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 28 Abr 2008 02:08 am
Que tal MnauDER!

No entiendo del todo si lo que estas preguntando es como definir el "hitTest" sobre una circunferencia... Es medio confuso tu post….
Pero de ser así, lo que debes hacer es lo siguiente:

Al MovieClip, el Circulo en cuestión, pongámosle, para este ejemplo, como nombre de instancia "mcCirculo"
Obviamente, el problema que tienes es que quizá, el círculo sea una imagen de mapa de bits, por lo cual no será redonda y el "hitarea" (la zona que tomará como detección del objeto) te quedara cuadrada, y no redonda. O sea, al colisionar con los bordes del círculo que no son parte de él, te va a ejecutar la acción que desees hacer con el "hitTest".

Para esto la solución es simple:

Dentro del MovieClip del círculo, dibuja con cualquier herramienta vectorial de flash la superficie que deseas que sea tomado como el "detector de colisión" (el hitArea). Por ejemplo, lo puedes hacer con el “oval tool” (no se como es el nombre de la herramienta en flash en español).
A ese círculo, o sea cual sea la forma que dibujaste, conviértelo en MovieClip, y ponle de nombre de instancia, por ejemplo, "mcHitArea". (Recuerda que este MC tiene que estar dentro del otro MC, al cual le pusimos como nombre de instancia ""mcCirculo" y recuerda también que estamos hablando de nombres de “instancias” y no de los nombres de los MovieClips). Si no quieres que se visualice el MC que has dibujado para definir la zona de colisión, bajale el alpha a 0.


Luego, en el root del archivo, o en donde sea que tengas el MC, le agregas un layer, y le pones la siguiente acción a ese fotograma:

mcCirculo.hitArea = mcCirculo.mcHitArea;

y listo! Ahora solo te tomara como superficie de colisión el MovieClip que has creado dentro del otro MovieClip!
De esta forma, puedes hacer muchas cosas, como por ejemplo, que el punto de colisión sea solo la cabeza del personaje de tu juego, y no todo el cuerpo.

Un beso, Vicky!

Por Vicky_25

10 de clabLevel



Genero:Femenino  

Argentina/España

opera
Citar            
MensajeEscrito el 10 Feb 2011 06:02 am
wow Vicky! En serio bastante útil! Lo voy a probar en as3 y les cuento :D

Por driegon

36 de clabLevel



Genero:Masculino  

firefox

 

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