2012-04-24 10 views
6

Me pregunto qué hermoso es el juego "Contre jour" para IOS. Especialmente me gusta "tentáculos" elásticos, que se muestran en este video de 2 minutos 20 segundos: http://www.youtube.com/watch?v=ptdTdJarWLwEfectos gráficos como tentáculos elásticos en Contre Jour

¿Cómo puedo poner en práctica tales efectos?

Sé que hay una técnica llamada "Integración verlet" e incluso la implementación de "cuerda verlet" para dibujar cuerdas en cocos2d, pero ¿cómo hacer tan buenos efectos elásticos para "tentáculos" de sprites?

Tengo experiencia en el uso de Box2D, y puede tratar de aplicar la física para este efecto, pero cann't encuentra una solución cómo dibujar sprites con tales morphing elástica.

¿Alguien me puede ayudar o dar algunas pistas?

Sólo incluso la explicación de la técnica, que me puede ayudar?

tengo un poco de experiencia en OpenGL, una gran experiencia cocos2d, así que planea utilizar cocos2d.

Lo siento por mala Inglés, espero, va a entender mi problema :)

Respuesta

9

Si utiliza Box2D, podría intentar una articulación distancia con el frequencyHz y opciones dampingRatio ajustado a valores no predeterminados. Tal vez una baja frecuencia de alrededor de 4-6, y un amortiguamiento de alrededor de 0.5-0.7 podría ser un buen punto para comenzar. Se puede pensar en la frecuencia como la cantidad de veces por segundo que la unión intenta corregir la distancia y la amortiguación según qué tan bien se corrige la distancia cada vez. Ajustar la amortiguación a un valor inferior a 1 significa que la junta será más lenta para corregir la distancia y tendrá un comportamiento elástico/gomoso.

En cuanto a la representación, que de hecho podría utilizar Verlet integración para esto. Tome los dos puntos de anclaje de la junta a distancia como puntos finales de la "cuerda", y coloque un puñado de puntos (no parece que sean demasiados) entre ellos en una línea uniformemente espaciada. Cada paso de tiempo, los puntos intermedios simplemente se moverán hacia el promedio de los dos puntos a cada lado de ellos mismos. Puede hacer que la cuerda parezca más ajustada o más suelta ajustando la distancia entre los puntos intermedios y la posición objetivo cada vez que lo hace.

La representación final textura/sprites entonces tomaría su posición desde la ubicación actual de los puntos Verlet.

+0

Vea también el ejemplo 'Web' en el banco de pruebas de Box2D. – iforce2d

Cuestiones relacionadas