From dec532e0574dfc900d4693e78cf5a9b4c35be204 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Sun, 29 May 2011 13:20:04 +0200 Subject: Somewhat fixed gravitation and jumping. --- scene.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'scene.cpp') diff --git a/scene.cpp b/scene.cpp index c55c2dc..059e2ca 100644 --- a/scene.cpp +++ b/scene.cpp @@ -20,6 +20,7 @@ Scene::Scene() { normals = false; render_terrain = true; gravity = true; + flying = true; last_node = NULL; @@ -185,7 +186,10 @@ void Scene::events() { render_terrain = !render_terrain; break; case SDLK_SPACE: - yvel = .05; + if(!flying) { + yvel = .02; + flying = true; + } break; case SDLK_h: gravity = !gravity; @@ -335,13 +339,14 @@ void Scene::render() { if(gravity) { float y = node->get_height(pos.x, pos.z); if(pos.y > y && !keystate[SDLK_e]) - yvel -= 9.81 * steps / 85000; - if(yvel < -.5) - yvel = -.5; + yvel -= 9.81 / 200000. * steps; + if(yvel < -.1) + yvel = -.1; pos.y += yvel * steps; if(pos.y < y) { pos.y = y; yvel = 0; + flying = false; } } move_str = (boost::format("%s n: %.2f,%.2f c: %d,%d %dx%d") -- cgit v1.2.3