aboutsummaryrefslogtreecommitdiff
path: root/src/specks.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/specks.lua')
-rw-r--r--src/specks.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/specks.lua b/src/specks.lua
index 7c0ef11..ec24378 100644
--- a/src/specks.lua
+++ b/src/specks.lua
@@ -57,6 +57,7 @@ function Speck_Sys.new()
self.forcex = 0
self.forcey = 0
+ self.damping = 0
self.initial_velx = 0
self.initial_vely = 0
@@ -168,8 +169,10 @@ function Speck_Sys:update(dt)
goto next_speck_update
end
- data.vel[i].x = data.vel[i].x + self.forcex * dt
- data.vel[i].y = data.vel[i].y + self.forcey * dt
+ local dampx = -data.vel[i].x * self.damping
+ local dampy = -data.vel[i].y * self.damping
+ data.vel[i].x = data.vel[i].x + (dampx + self.forcex) * dt
+ data.vel[i].y = data.vel[i].y + (dampy + self.forcey) * dt
-- move and bounce
data.pos[i].x = data.pos[i].x + data.vel[i].x * dt
@@ -238,6 +241,7 @@ SPECK_EXPORTED_ARGS = {
"forcey",
"initial_velx",
"initial_vely",
+ "damping",
"spread",
"lifetime_min",
"lifetime_max",