summaryrefslogtreecommitdiffhomepage
path: root/src/helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'src/helper.rb')
-rw-r--r--src/helper.rb23
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