From 6cd041042e39f48c96733ad9757702e842820f57 Mon Sep 17 00:00:00 2001 From: Ricardo Cruz Date: Wed, 12 May 2004 12:18:47 +0000 Subject: [PATCH] Smoother vertical scrolling. You can play a bit with Y_SPACE, in case you want to tune it more. SVN-Revision: 1128 --- src/world.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/world.cpp b/src/world.cpp index 5701c18eb..0f8532886 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -310,9 +310,13 @@ World::action(double frame_ratio) } } -// the space that it takes for the screen to start scrolling, regarding -// screen bounds (in pixels) +/* the space that it takes for the screen to start scrolling, regarding +/* screen bounds (in pixels) */ +// should be higher than screen->w/2 (320) #define X_SPACE (400-16) +// should be less than screen->h/2 (240) +#define Y_SPACE 200 + // the time it takes to move the camera (in ms) #define CHANGE_DIR_SCROLL_SPEED 2000 @@ -380,7 +384,10 @@ void World::scrolling(double frame_ratio) float tux_pos_y = tux.base.y + (tux.base.height/2); - scroll_y = tux_pos_y - (screen->h / 2); + if (scroll_y < tux_pos_y - (screen->h - Y_SPACE)) + scroll_y = tux_pos_y - (screen->h - Y_SPACE); + else if (scroll_y > tux_pos_y - Y_SPACE) + scroll_y = tux_pos_y - Y_SPACE; // this code prevent the screen to scroll before the start or after the level's end if(scroll_y < 0) -- 2.11.0