From 1575448b1a71dd029a8d135d2aff9096483a9953 Mon Sep 17 00:00:00 2001 From: Kahrl Date: Mon, 19 Mar 2012 04:25:09 +0100 Subject: Custom boxy nodes (stairs, slabs) and collision changes --- src/camera.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/camera.cpp') diff --git a/src/camera.cpp b/src/camera.cpp index 1ef594eea..32dd85e52 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -213,8 +213,22 @@ void Camera::step(f32 dtime) void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize, f32 tool_reload_ratio) { + // Get player position + // Smooth the movement when walking up stairs + v3f old_player_position = m_playernode->getPosition(); + v3f player_position = player->getPosition(); + //if(player->touching_ground && player_position.Y > old_player_position.Y) + if(player->touching_ground && + player_position.Y > old_player_position.Y) + { + f32 oldy = old_player_position.Y; + f32 newy = player_position.Y; + f32 t = exp(-23*frametime); + player_position.Y = oldy * t + newy * (1-t); + } + // Set player node transformation - m_playernode->setPosition(player->getPosition()); + m_playernode->setPosition(player_position); m_playernode->setRotation(v3f(0, -1 * player->getYaw(), 0)); m_playernode->updateAbsolutePosition(); -- cgit v1.2.3