[Super-tux-commit] supertux/src world.cpp,1.59,1.60
Brought to you by:
wkendrick
From: Ryan F. <sik...@us...> - 2004-05-05 02:59:35
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27409 Modified Files: world.cpp Log Message: - fixed the part of backscrolling that a broke. Backscrolling still needs some work. Index: world.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/world.cpp,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- world.cpp 4 May 2004 23:39:40 -0000 1.59 +++ world.cpp 5 May 2004 02:59:27 -0000 1.60 @@ -320,25 +320,51 @@ { int tux_pos_x = (int)(tux.base.x + (tux.base.width/2)); - if(tux.old_dir != tux.dir && (level->back_scrolling || debug_mode)) - scrolling_timer.start(CHANGE_DIR_SCROLL_SPEED); - - if(scrolling_timer.check()) + if (level->back_scrolling || debug_mode) + { + if(tux.old_dir != tux.dir && level->back_scrolling) + scrolling_timer.start(CHANGE_DIR_SCROLL_SPEED); + + if(scrolling_timer.check()) { - float final_scroll_x; - if (tux.physic.get_velocity_x() > 0) - final_scroll_x = tux_pos_x - (screen->w - X_SPACE); - else if (tux.physic.get_velocity_x() < 0) - final_scroll_x = tux_pos_x - X_SPACE; + float final_scroll_x; + if (tux.physic.get_velocity_x() > 0) + final_scroll_x = tux_pos_x - (screen->w - X_SPACE); + else if (tux.physic.get_velocity_x() < 0) + final_scroll_x = tux_pos_x - X_SPACE; + else + { + if (tux.dir == RIGHT) + final_scroll_x = tux_pos_x - (screen->w - X_SPACE); + else if (tux.dir == LEFT && level->back_scrolling) + final_scroll_x = tux_pos_x - X_SPACE; + } + + scroll_x += (final_scroll_x - scroll_x) / (frame_ratio * (CHANGE_DIR_SCROLL_SPEED / 100)); + // std::cerr << tux_pos_x << " " << final_scroll_x << " " << scroll_x << std::endl; - scroll_x += ((final_scroll_x - scroll_x) / (CHANGE_DIR_SCROLL_SPEED)) * frame_ratio; } + else + { + 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; + } + } + } - else + else /*no debug*/ { 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 || 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; } |