#include "control/controller.hpp"
#include "scripting/player.hpp"
#include "player_status.hpp"
+#include "display_effect.hpp"
class BadGuy;
class Portable;
static const float TUX_SAFE_TIME = 1.8;
static const float TUX_INVINCIBLE_TIME = 10.0;
static const float TUX_INVINCIBLE_TIME_WARNING = 2.0;
-static const float TUX_FLAPPING_TIME = 1; /* How long Tux can flap his wings to gain additional jump height */
-static const float TUX_FLAPPING_STRENGTH = 100; /* How much Y velocity Tux gains when flapping */
-static const float TUX_FLAPPING_LEAST_X = 30; /* How much X velocity Tux gains when flapping from vertical jump */
static const float GROWING_TIME = 1.0;
static const int GROWING_FRAMES = 7;
private:
bool dying;
+ bool backflipping;
+ int backflip_direction;
public:
Direction dir;
bool on_ground_flag;
bool jumping;
- bool flapping;
bool can_jump;
- bool can_flap;
- bool falling_from_flap;
- bool enable_hover;
bool butt_jump;
- float flapping_velocity;
-
- // Ricardo's flapping
- int flaps_nb;
-
- // temporary to help player's choosing a flapping
- // TODO: remove this after agreeing on flapstyle!
- enum { MAREK_FLAP, RICARDO_FLAP, RYAN_FLAP, NO_FLAP };
- int flapping_mode;
-
Timer invincible_timer;
Timer skidding_timer;
Timer safe_timer;
Timer dying_timer;
Timer growing_timer;
Timer idle_timer;
- Timer flapping_timer;
+ Timer backflip_timer;
Physic physic;
public:
virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
+ virtual void collision_tile(uint32_t tile_attributes);
void make_invincible();
bool is_invincible() const
{
return player_status;
}
+ // set kick animation
+ void kick();
void bounce(BadGuy& badguy);
bool is_dead() const
{ return dead; }
bool is_big();
+
+ void set_visible(bool visible);
+ bool get_visible();
private:
void handle_input();
void deactivate();
void walk(float speed);
+ bool visible;
+
Portable* grabbed_object;
Sprite* smalltux_gameover;
Sprite* smalltux_star;
Sprite* bigtux_star;
+ Vector floor_normal;
};
#endif /*SUPERTUX_PLAYER_H*/