fix: player flight linearDamping, add verticalDamping (bool)

This commit is contained in:
MihailRis
2024-07-08 23:53:25 +03:00
parent 3cafc39555
commit f3201b7742
5 changed files with 31 additions and 29 deletions
+1
View File
@@ -41,6 +41,7 @@ struct Hitbox {
glm::vec3 halfsize;
glm::vec3 velocity;
float linearDamping;
bool verticalDamping = false;
bool grounded = false;
Hitbox(glm::vec3 position, glm::vec3 halfsize);
+3
View File
@@ -47,6 +47,9 @@ void PhysicsSolver::step(
(prevGrounded && gravityScale > 0.0f) ? 0.5f : 0.0f);
}
vel.x *= glm::max(0.0f, 1.0f - dt * linearDamping);
if (hitbox->verticalDamping) {
vel.y *= glm::max(0.0f, 1.0f - dt * linearDamping);
}
vel.z *= glm::max(0.0f, 1.0f - dt * linearDamping);
pos += vel * dt + gravity * gravityScale * dt * dt * 0.5f;