Skip to content

Commit

Permalink
Implemented water
Browse files Browse the repository at this point in the history
  • Loading branch information
kraxarn committed Jun 24, 2021
1 parent 4f330b9 commit 99bec46
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 5 deletions.
10 changes: 10 additions & 0 deletions src/entity/hud.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,13 @@ auto entity::hud::is_dead() const -> bool
{
return state.get_dead();
}

auto entity::hud::get_player_speed_modifier() const -> float
{
return player_speed_modifier;
}

void entity::hud::set_player_speed_modifier(float value)
{
player_speed_modifier = value;
}
5 changes: 5 additions & 0 deletions src/entity/hud.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ namespace entity
/** Player is dead */
auto is_dead() const -> bool;

auto get_player_speed_modifier() const -> float;
void set_player_speed_modifier(float value);

private:
/** Font size for all HUD elements */
static constexpr int font_size = 30;
Expand Down Expand Up @@ -61,6 +64,8 @@ namespace entity
asset::sound snd_gem;
asset::sound snd_fall;

float player_speed_modifier = 1.F;

void update(ce::level &level);
};
}
10 changes: 6 additions & 4 deletions src/entity/player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@ void entity::player::update(const ce::input &input,
{
if (!is_paused)
{
auto speed_limit_x = speed_limit * hud.get_player_speed_modifier();

// Right
if (input.is_down(ce::key::right))
{
velocity.x += move_acceleration;
if (velocity.x > speed_limit)
if (velocity.x > speed_limit_x)
{
velocity.x = speed_limit;
velocity.x = speed_limit_x;
}
}
else if (velocity.x > 0 && is_grounded())
Expand All @@ -37,9 +39,9 @@ void entity::player::update(const ce::input &input,
if (input.is_down(ce::key::left))
{
velocity.x -= move_acceleration;
if (velocity.x < -speed_limit)
if (velocity.x < -speed_limit_x)
{
velocity.x = -speed_limit;
velocity.x = -speed_limit_x;
}
}
else if (velocity.x < 0 && is_grounded())
Expand Down
5 changes: 4 additions & 1 deletion src/physics/collision.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ auto phys::collision::update(const Rectangle &player_rect,
ce::vector2f player_position(rect.x, rect.y);
auto player_tile = (player_position / ce::tile_size).to<int>();

// Reset speed modifier
hud.set_player_speed_modifier(1.F);

auto rect_x = rect;
rect_x.x += velocity.x;
if (will_collide(level, hud, player_tile, rect_x, velocity))
Expand Down Expand Up @@ -145,7 +148,7 @@ auto phys::collision::collect_item(ce::level &level,
}
else if (item == tile::water)
{
// TODO: Slow down player
hud.set_player_speed_modifier(0.5F);
}
else if (item == tile::lava
|| item == tile::spike)
Expand Down

0 comments on commit 99bec46

Please sign in to comment.