[Fix] Issue with gravity sucking half the player into the ground.

This commit is contained in:
Ritchie Cunningham 2025-09-17 19:29:18 +01:00
parent c5a722b047
commit 5d045e2fa7

View File

@ -1,7 +1,5 @@
#include <cmath> #include <cmath>
#include "bettola/game/player_base.h" #include "bettola/game/player_base.h"
#include "bettola/network/player_input_message.h"
#include "game/player.h"
/* Use a static variable for ID generation across all player types. */ /* Use a static variable for ID generation across all player types. */
static unsigned int next_player_id = 1; static unsigned int next_player_id = 1;
@ -23,8 +21,9 @@ void PlayerBase::update(double dt) {
} }
void PlayerBase::apply_gravity_and_collision(float terrain_height) { void PlayerBase::apply_gravity_and_collision(float terrain_height) {
if(_position.y < terrain_height) { const float player_height_offset = 0.5f; /* Half the player model height. */
_position.y = terrain_height; if(_position.y < terrain_height + player_height_offset) {
_position.y = terrain_height + player_height_offset;
_velocity.y = 0; _velocity.y = 0;
} }
} }