Estoy intentando hacer un simulador de mecánica orbital en 2D. Tomen como referencia a los siguientes juegos:
Así como Angry Birds tiene una forma de predecir sus trayectorias parabólicas, los juegos dichos también predicen las trayectorias elípticas:


¿Cómo podría hacer esto último en Game maker? (A partir de mi código)
Mi juego, por el momento consiste en un objeto Sol (oSol) al centro y un objeto player (oPlayer) que está orbitando a su alrededor.
Evento Create de oPlayer
Evento Step de oPlayer
Evento Create de oSol
Evento Keyboards de oPlayer
Lo que necesito saber es qué poner en el evento Draw para lograr hacer algo como lo que dije... Desde ya, muchas gracias!!
- Kerbal Space Program (https://store.steampowered.com/app/220200/Kerbal_Space_Program/)
- Spaceflight Simulator (https://play.google.com/store/apps/details?id=com.StefMorojna.SpaceflightSimulator&hl=es)
- Children of a Dead Earth (https://store.steampowered.com/app/476530/Children_of_a_Dead_Earth)/
Así como Angry Birds tiene una forma de predecir sus trayectorias parabólicas, los juegos dichos también predicen las trayectorias elípticas:


¿Cómo podría hacer esto último en Game maker? (A partir de mi código)
Mi juego, por el momento consiste en un objeto Sol (oSol) al centro y un objeto player (oPlayer) que está orbitando a su alrededor.
Evento Create de oPlayer
Código [Seleccionar]
x=oSol.x;
y=oSol.y-350;
hspeed=0.3;
Evento Step de oPlayer
Código [Seleccionar]
//Codigo de gravedad hacia el Sol
var g, DirG;
with (oSol){
g = masa/sqr(point_distance(x, y, oPlayer.x, oPlayer.y)); //Ley de gravitacion F=GM/r^2
DirG = point_direction(oPlayer.x, oPlayer.y, x, y); //Direccion de la gravedad
with (oPlayer) {motion_add(DirG, g);} //Aceleracion de la gravedad
}
Evento Create de oSol
Código [Seleccionar]
masa=25;
Evento Keyboards de oPlayer
Código [Seleccionar]
hspeed -= 0.001; //<Left>
Código [Seleccionar]
vspeed -= 0.001; //<Up>
Código [Seleccionar]
hspeed += 0.001; //<Right>
Código [Seleccionar]
vspeed += 0.001; //<Down>
Lo que necesito saber es qué poner en el evento Draw para lograr hacer algo como lo que dije... Desde ya, muchas gracias!!
