Update of /cvsroot/super-tux/supertux/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24424/src
Modified Files:
player.cpp player.h
Log Message:
implemented double jump (press up again while jumping) and hovering (press and hold up while falling down)
both need some tweaking (especially when jumping off enemies) and should of course be triggered by special items in the final game
Index: player.cpp
===================================================================
RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v
retrieving revision 1.166
retrieving revision 1.167
diff -u -d -r1.166 -r1.167
--- player.cpp 15 Sep 2004 11:50:31 -0000 1.166
+++ player.cpp 15 Sep 2004 15:15:24 -0000 1.167
@@ -158,7 +158,9 @@
last_ground_y = 0;
fall_mode = ON_GROUND;
jumping = false;
+ double_jumping = false;
can_jump = true;
+ can_double_jump = false;
butt_jump = false;
frame_main = 0;
@@ -532,7 +534,9 @@
--base.y;
jumping = true;
+ double_jumping = false;
can_jump = false;
+ can_double_jump = false;
if (size == SMALL)
SoundManager::get()->play_sound(IDToSound(SND_JUMP));
else
@@ -541,9 +545,25 @@
// Let go of jump key
else if(input.up == UP && jumping && physic.get_velocity_y() > 0)
{
- jumping = false;
+ if (!double_jumping && !duck) {can_double_jump = true;}
+ jumping = false;
physic.set_velocity_y(0);
}
+
+ // Double jump
+ if (input.up == DOWN && can_double_jump)
+ {
+ can_double_jump = false;
+ jumping = true;
+ double_jumping = true;
+ physic.set_velocity_y(5.2);
+ }
+
+ // Hover
+ if (input.up == DOWN && !jumping && !butt_jump && physic.get_velocity_y() <= 0)
+ {
+ physic.set_velocity_y(-1);
+ }
/* In case the player has pressed Down while in a certain range of air,
enable butt jump action */
Index: player.h
===================================================================
RCS file: /cvsroot/super-tux/supertux/src/player.h,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -d -r1.84 -r1.85
--- player.h 9 Sep 2004 18:42:18 -0000 1.84
+++ player.h 15 Sep 2004 15:15:25 -0000 1.85
@@ -147,7 +147,9 @@
FallMode fall_mode;
bool jumping;
+ bool double_jumping;
bool can_jump;
+ bool can_double_jump;
bool butt_jump;
int frame_;
int frame_main;
|