diff options
Diffstat (limited to 'src/helper.rb')
| -rw-r--r-- | src/helper.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/helper.rb b/src/helper.rb index 2eddcfe..020b2b9 100644 --- a/src/helper.rb +++ b/src/helper.rb @@ -36,3 +36,26 @@ class Tileset end end + +module Helper + class << self + def decelerate(velocity_cmp, movement_cmp) + velocity_mag = Math.sqrt((velocity_cmp.x**2) + (velocity_cmp.y**2)) + + # If going slower then deceleration + if velocity_mag <= (movement_cmp.deceleration * Rl.frame_time) + # Set to 0 + velocity_cmp.x = 0 + velocity_cmp.y = 0 + else + velocity_x_mag = velocity_cmp.x / velocity_mag + velocity_y_mag = velocity_cmp.y / velocity_mag + + # Add deceleration + velocity_cmp.x -= velocity_x_mag * movement_cmp.deceleration * Rl.frame_time + velocity_cmp.y -= velocity_y_mag * movement_cmp.deceleration * Rl.frame_time + end + true + end + end +end |
