X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fapp.cc;h=e9a4781b6330f62d48561322f775583c3b8611f2;hp=59c8f077133c2d64aa24bd70af88244cfc5b82f7;hb=9802d969be55668e4dcc10fe427b0dcdeb6302be;hpb=13c9481b0430d0bf6fc50b0952bcd81229022abc diff --git a/src/app.cc b/src/app.cc index 59c8f07..e9a4781 100644 --- a/src/app.cc +++ b/src/app.cc @@ -43,7 +43,7 @@ static int prev_mx, prev_my; static bool bnstate[8]; static bool keystate[256]; static Vec2 joy_move, joy_look; -static float joy_deadzone = 0.1; +static float joy_deadzone = 0.01; static Mat4 view_matrix, mouse_view_matrix, proj_matrix; static TextureSet texman; @@ -96,7 +96,7 @@ bool app_init(int argc, char **argv) glClearColor(0.2, 0.2, 0.2, 1.0); scn = new Scene(&texman); - if(!load_scene(scn, "data/museum.scene")) { + if(!load_scene(scn, opt.scenefile ? opt.scenefile : "data/museum.scene")) { return false; } @@ -177,15 +177,17 @@ static void update(float dt) float len = sqrt(jmove_lensq); jmove_lensq -= jdeadsq; - dir.x += joy_move.x / len * speed; - dir.z += joy_move.y / len * speed; + float mag = len * len; + dir.x += mag * joy_move.x / len * 2.0 * speed; + dir.z += mag * joy_move.y / len * 2.0 * speed; } if(jlook_lensq > jdeadsq) { float len = sqrt(jlook_lensq); jlook_lensq -= jdeadsq; - cam_theta += joy_look.x / len * mouse_speed * 2.0; - cam_phi += joy_look.y / len * mouse_speed * 1.0; + float mag = len * len; + cam_theta += mag * joy_look.x / len * 200.0 * dt; + cam_phi += mag * joy_look.y / len * 100.0 * dt; if(cam_phi < -90.0f) cam_phi = -90.0f; if(cam_phi > 90.0f) cam_phi = 90.0f; }