From 1047bed569232312619122f56ee4a6b2a323cc1c Mon Sep 17 00:00:00 2001 From: esquizo Date: Thu, 21 May 2026 17:15:21 -0300 Subject: libphysics: update de um tick --- libphysics/test/vis.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'libphysics/test') diff --git a/libphysics/test/vis.c b/libphysics/test/vis.c index ad3cef8..30688df 100644 --- a/libphysics/test/vis.c +++ b/libphysics/test/vis.c @@ -7,7 +7,7 @@ #include "../dat.h" -#define SBODY 256 +#define SBODY 2048 static void process_events(void); static void render(void); @@ -50,7 +50,7 @@ main() phxsetpos(b, rand() % 800, rand() % 600); phxsetsize(b, 5.0, 5.0); - phxapplyaccel(b, (float[]){ 30000 * FLOAT_RAND, 30000 * FLOAT_RAND }); + phxapplyaccel(b, (float[]){ (150 / PHX_TICK_TIME) * FLOAT_RAND, (150 / PHX_TICK_TIME) * FLOAT_RAND }); } phxsetmap(8, 8, (int[]) { @@ -74,9 +74,16 @@ main() new_ticks = SDL_GetTicksNS(); delta = (new_ticks - old_ticks) / 1000000000.0; old_ticks = new_ticks; - phxtick(delta); - while(phxnextcollevent(&event)) { - printf("Collision with %d and %d\n", event.body1, event.body2); + + static float accum = 0; + + accum += delta; + while(accum >= PHX_TICK_TIME) { + phxfixtick(); + while(phxnextcollevent(&event)) { + printf("Collision with %d and %d\n", event.body1, event.body2); + } + accum -= PHX_TICK_TIME; } render(); -- cgit v1.2.3