diff options
Diffstat (limited to '2d/rigidbody/rigidbody_1/main.cpp')
-rw-r--r-- | 2d/rigidbody/rigidbody_1/main.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/2d/rigidbody/rigidbody_1/main.cpp b/2d/rigidbody/rigidbody_1/main.cpp index 8d4ab0e..321e3e5 100644 --- a/2d/rigidbody/rigidbody_1/main.cpp +++ b/2d/rigidbody/rigidbody_1/main.cpp @@ -11,6 +11,8 @@ #include <cmath> #include <cfloat> +const float32 MAX_VELOCITY = 200.f; + struct Rigidbody { Vector2 force = { 0, 0 }; Vector2 velocity = { 0, 0 }; @@ -35,6 +37,14 @@ struct Rigidbody { Vector2 acceleration = force / mass; velocity += (acceleration * deltaTimeSeconds); + + if (ABS(velocity.x) > MAX_VELOCITY) { + velocity.x = SIGN(velocity.x) * MAX_VELOCITY; + } + if (ABS(velocity.y) > MAX_VELOCITY) { + velocity.y = SIGN(velocity.y) * MAX_VELOCITY; + } + position += (velocity * deltaTimeSeconds); force = Vector2 { 0.f, 0.f }; } |