X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain.cpp;h=1e9d4ad7e0b916915b5bd5cfa247d77f05eb7649;hb=9ae1c0798cff2d1ed816bccb0723bd5a4ca97194;hp=01afeaad3e5b5051c5a342a0a1307ea1a94e640c;hpb=2ea1d2d42976f924508c086f1f9e4c773417d06c;p=physics.git diff --git a/src/main.cpp b/src/main.cpp index 01afeaa..1e9d4ad 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -65,7 +65,7 @@ int target_UPS = 100; long int last_Block_Update; float update_Sum = 0; -int ups =100, fps=100; +int ups=100, fps=100; int update_Count, draw_Count; long int last_Second; @@ -83,9 +83,10 @@ float rRun = 100; float num = 10; +float total = 0; /// ***** MAIN Method ***** -int main() +int main(int argc, char** args) { init(); run(); @@ -101,13 +102,30 @@ void init() graphics::init(); +#ifdef DEBUGGING + cout << "Graphics initialized" << endl; + cout << "Graphics initialized2" << endl; +#endif + game::init(); +#ifdef DEBUGGING + cout << "Game initialized" << endl; +#endif + input::init(); +#ifdef DEBUGGING + cout << "Input initialized" << endl; +#endif + cfg::init(); #ifdef DEBUGGING + cout << "Configs initialized" << endl; +#endif + +#ifdef DEBUGGING cout << "Initialization Complete" << endl; #endif } @@ -129,8 +147,6 @@ void clean() /// ***** Private Methods ***** -float total = 0; - void run() { is_Running = true; @@ -163,7 +179,7 @@ void blockUpdate() //cout << "Block" << endl; // Calculate the updates that should be run for the next draw - update_Sum += diff / (1000000 / (float)target_UPS); + update_Sum += (float)(diff * target_UPS) / 1000000; // insures the float to int cast is done once. int iupdate_sum = (int)update_Sum; @@ -171,11 +187,12 @@ void blockUpdate() // TODO the main run loop needs to be tested and pruned if (iupdate_sum > 0) { - // Calculate a time step that spreads the updates out as much as possible - // used because really quick updates are nearly wasted + // Calculate a time step that spreads the updates out as much as + // possible used because really quick updates are nearly wasted //float time_step = ((float)diff) / iupdate_sum / 1000; //float time_step = 1000 / (100000 / rUpdate) / iupdate_sum; + //float time_step = 1000 / ups / iupdate_sum; float time_step = 10; // run the updates @@ -184,7 +201,8 @@ void blockUpdate() handleInput(); update(time_step); } - // remove the updates that where run from the sum + + // remove the updates that were run from the sum update_Sum -= iupdate_sum; last_Block_Update = tickCountMicro(); } @@ -262,7 +280,7 @@ void draw() glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -// SDL_Delay(10); + //SDL_Delay(10); time = tickCountMicro() - time; rDraw = (rDraw*(num-1) + time) /num;