diff options
Diffstat (limited to 'libphysics/test')
| -rw-r--r-- | libphysics/test/vis.c | 17 |
1 files changed, 12 insertions, 5 deletions
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(); |
