Comunidad de diseño web y desarrollo en internet online

Simular efecto de gravedad con ActionScript

Ésta última semana estuve un poco complicado con unos exámenes, pero por fin tengo un respiro y me puedo dedicar un poco más a Flash. En este caso, en un código en el que estuve trabajando bastante (para los que vieron el post de Clabbie, esta es una versión final mejorada del código que empleé en ese "juego")

Para simular la gravedad nos vamos a basar en que esta disminuye de forma proporcional al cuadrado de la distancia. Por lo que creé una función que se encarga de darnos la aceleración en _x y en _y para luego sumarla a la velocidad de la partícula que deseamos mover.

En éste ejemplo se aprecia su funcionamiento (100% generado por código, no hay animaciones).

Simplemente, hagan click para disparar la pelotita; matengan apretado Shift para moverla; usen la barra espaciadora para activar/desactivar la estela y las flechas arriba y abajo para modificar la fuerza de la gravedad (que sólo afecta al punto verde)



El código es bastante simple y es fácil usar un for para que un MC se vea afectado por la gravedad de más de un planeta (como la pelotita).

Respecto a las órbitas, tengan en cuenta que hay que probar hasta que salga, conseguir órbitas de varios planetas que no choquen entre sí (como el ejemplo de acá arriba) es bastante difícil y requiere mucha prueba y error. Además, en esos casos no recomiendo que los MCs se vean afectados por más de una fuerza de gravedad, eso complica mucho las cosas.

Aquí les dejo el archivo .fla

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate