From 971d03690bf5141dacfd0ab3f383e06aa5411438 Mon Sep 17 00:00:00 2001 From: Ryan Flegel Date: Thu, 6 May 2004 18:49:52 +0000 Subject: [PATCH] - undid Ricardo's changes SVN-Revision: 1010 --- src/world.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/world.cpp b/src/world.cpp index 7c284003e..fdb1fda8e 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -320,9 +320,9 @@ void World::scrolling(double frame_ratio) { int tux_pos_x = (int)(tux.base.x + (tux.base.width/2)); - if (/*level->back_scrolling || */debug_mode) + if (level->back_scrolling || debug_mode) { - if(tux.old_dir != tux.dir) + if(tux.old_dir != tux.dir && level->back_scrolling) scrolling_timer.start(CHANGE_DIR_SCROLL_SPEED); if(scrolling_timer.check()) @@ -340,13 +340,9 @@ void World::scrolling(double frame_ratio) final_scroll_x = tux_pos_x - X_SPACE; } -/* scroll_x += (final_scroll_x - scroll_x) + scroll_x += (final_scroll_x - scroll_x) / (frame_ratio * (CHANGE_DIR_SCROLL_SPEED / 100)) + (tux.physic.get_velocity_x() * frame_ratio + tux.physic.get_acceleration_x() * frame_ratio * frame_ratio); -*/ - -scroll_x += ((final_scroll_x - scroll_x) / CHANGE_DIR_SCROLL_SPEED) * frame_ratio; - // std::cerr << tux_pos_x << " " << final_scroll_x << " " << scroll_x << std::endl; } @@ -354,13 +350,13 @@ scroll_x += ((final_scroll_x - scroll_x) / CHANGE_DIR_SCROLL_SPEED) * frame_rati { if (tux.physic.get_velocity_x() > 0 && scroll_x < tux_pos_x - (screen->w - X_SPACE)) scroll_x = tux_pos_x - (screen->w - X_SPACE); - else if (tux.physic.get_velocity_x() < 0 && scroll_x > tux_pos_x - X_SPACE && debug_mode) + else if (tux.physic.get_velocity_x() < 0 && scroll_x > tux_pos_x - X_SPACE && level->back_scrolling) scroll_x = tux_pos_x - X_SPACE; else { if (tux.dir == RIGHT && scroll_x < tux_pos_x - (screen->w - X_SPACE)) scroll_x = tux_pos_x - (screen->w - X_SPACE); - else if (tux.dir == LEFT && scroll_x > tux_pos_x - X_SPACE && debug_mode) + else if (tux.dir == LEFT && scroll_x > tux_pos_x - X_SPACE && level->back_scrolling) scroll_x = tux_pos_x - X_SPACE; } } @@ -368,10 +364,20 @@ scroll_x += ((final_scroll_x - scroll_x) / CHANGE_DIR_SCROLL_SPEED) * frame_rati else /*no debug*/ { - if (scroll_x < tux_pos_x - (screen->w - X_SPACE)) + if (tux.physic.get_velocity_x() > 0 && scroll_x < tux_pos_x - (screen->w - X_SPACE)) scroll_x = tux_pos_x - (screen->w - X_SPACE); + else if (tux.physic.get_velocity_x() < 0 && scroll_x > tux_pos_x - X_SPACE && level->back_scrolling) + scroll_x = tux_pos_x - X_SPACE; + else + { + if (tux.dir == RIGHT && scroll_x < tux_pos_x - (screen->w - X_SPACE)) + scroll_x = tux_pos_x - (screen->w - X_SPACE); + else if (tux.dir == LEFT && scroll_x > tux_pos_x - X_SPACE && level->back_scrolling) + scroll_x = tux_pos_x - X_SPACE; } + } + // this code prevent the screen to scroll before the start or after the level's end if(scroll_x < 0) scroll_x = 0; -- 2.11.0