Autor Wątek: Gravity!  (Przeczytany 4434 razy)

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 19:17:47
const float Min_Step = 0.017; // czyli okolo 1/60
Time time;
while (game.Run) {

time.dt = glfwGetTime() - time.realtime;
time.realtime += time.dt;

if (time.dt > 0.1) time.dt = 0.1;
if (time.dt < 0) time.dt = 0;

game.grabInput();

while (time.dt > Min_Step)
{
game.update(Min_Step);
time.dt -= Min_Step;
}
if (time.dt > 0)
{
game.update(time.dt);
}

if (game.Run) game.render();
}


Dalej w game.update(dt):
c_time.time += dt; //Te c_time jest potrzebne dla tweenera kamery.
if (!Paused)
{
time.time += dt; //Te time jest potrzebne dla tweenera cząsteczek itp.
if (level)
update_level(dt);
}
A w update_level(dT):

bodies[i]->V.x += bodies[i]->a.x * dT;
bodies[i]->V.y += bodies[i]->a.y * dT;
glm::vec2 v = glm::vec2(0.0f);
Body* p = bodies[i]->parent;
while (true)
{
if (p == nullptr)
break;
v += p->V;
p = p->parent;
}
v += bodies[i]->V; //Dzieki temu ciala kraza po orbitach innych cial.
bodies[i]->sprite.setPosition(bodies[i]->sprite.position + (v * dT));
« Ostatnia zmiana: Październik 10, 2012, 19:22:07 wysłana przez Frondeus »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych