From 86cf3102ccfc8892b3f73a271a12d7f2a0881500 Mon Sep 17 00:00:00 2001 From: Marek Moeckel Date: Thu, 16 Sep 2004 23:26:26 +0000 Subject: [PATCH] replaced double jumping with flapping SVN-Revision: 1934 --- src/player.cpp | 32 ++++++++++++++++++-------------- src/player.h | 6 ++++-- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/player.cpp b/src/player.cpp index f2561d69e..90c78ae0a 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -158,9 +158,9 @@ Player::init() last_ground_y = 0; fall_mode = ON_GROUND; jumping = false; - double_jumping = false; + flapping = false; can_jump = true; - can_double_jump = false; + can_flap = false; enable_hover = false; butt_jump = false; @@ -177,6 +177,7 @@ Player::init() shooting_timer.init(true); growing_timer.init(true); idle_timer.init(true); + flapping_timer.init(true); physic.reset(); } @@ -535,9 +536,9 @@ Player::handle_vertical_input() --base.y; jumping = true; - double_jumping = false; + flapping = false; can_jump = false; - can_double_jump = false; + can_flap = false; if (size == SMALL) SoundManager::get()->play_sound(IDToSound(SND_JUMP)); else @@ -546,22 +547,25 @@ Player::handle_vertical_input() // Let go of jump key else if(input.up == UP && jumping && physic.get_velocity_y() > 0) { - if (!double_jumping && !duck) {can_double_jump = true;} + if (!flapping && !duck) + { + can_flap = true; + } jumping = false; physic.set_velocity_y(0); } - // Double jump - if (input.up == DOWN && can_double_jump) + // Flapping + if (input.up == DOWN && can_flap) { - can_double_jump = false; + if (!flapping_timer.started()) {flapping_timer.start(TUX_FLAPPING_TIME);} + if (!flapping_timer.check()) {can_flap = false;} jumping = true; - double_jumping = true; - if (size == SMALL) - SoundManager::get()->play_sound(IDToSound(SND_JUMP)); - else - SoundManager::get()->play_sound(IDToSound(SND_BIGJUMP)); - physic.set_velocity_y(5.2); + flapping = true; + if (flapping_timer.get_gone() <= TUX_FLAPPING_TIME) + { + physic.set_velocity_y((float)flapping_timer.get_gone()/450); + } } // Hover diff --git a/src/player.h b/src/player.h index fc7c09edf..f995219a9 100644 --- a/src/player.h +++ b/src/player.h @@ -40,6 +40,7 @@ class BadGuy; #define TUX_SAFE_TIME 1250 #define TUX_INVINCIBLE_TIME 10000 #define TUX_INVINCIBLE_TIME_WARNING 2000 +#define TUX_FLAPPING_TIME 1000 /* How long Tux can flap his wings to gain additional jump height */ #define TIME_WARNING 20000 /* When to alert player they're low on time! */ /* One-ups... */ @@ -147,9 +148,9 @@ public: FallMode fall_mode; bool jumping; - bool double_jumping; + bool flapping; bool can_jump; - bool can_double_jump; + bool can_flap; bool enable_hover; bool butt_jump; int frame_; @@ -165,6 +166,7 @@ public: Timer dying_timer; Timer growing_timer; Timer idle_timer; + Timer flapping_timer; Physic physic; public: -- 2.11.0