From: Marek Moeckel Date: Fri, 8 Oct 2004 15:56:19 +0000 (+0000) Subject: changing directions while flapping now works X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=ac34902414690bc746489a5caee215516d715ea1;p=supertux.git changing directions while flapping now works added some comments SVN-Revision: 1996 --- diff --git a/src/player.cpp b/src/player.cpp index 7872c4d75..b28dee442 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -592,15 +592,17 @@ Player::handle_vertical_input() } jumping = true; flapping = true; - float iv = physic.get_velocity_x(); - float fv = 1.2; - float cv = 0; - if (iv < 0) {fv *= (-1);} + float iv = physic.get_velocity_x(); //flapping speed depends on initial velocity + float fv = 1.2; //fixed velocity that is reached when flapping is done + float cv = 0; //current velocity + if (iv < 0) {fv *= (-1);} //make fv negative or positive depending on direction of iv if (flapping_timer.get_gone() <= TUX_FLAPPING_TIME) { - //FIXME: Changing directions while flapping doesn't work yet + //TODO: Tux currently slows down too fast; fix that. if (iv == 0) {cv = 0;} else {cv = (iv-((iv-fv)*(float)flapping_timer.get_gone()/TUX_FLAPPING_TIME));} + //Handle change of direction while flapping + if (((dir == LEFT) && (cv > 0)) || (dir == RIGHT) && (cv < 0)) {cv *= (-1);} physic.set_velocity_x(cv); physic.set_velocity_y((float)flapping_timer.get_gone()/700); }