diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/scenes/speck_editor.lua | 1 | ||||
| -rw-r--r-- | src/specks.lua | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/scenes/speck_editor.lua b/src/scenes/speck_editor.lua index f491955..bdba449 100644 --- a/src/scenes/speck_editor.lua +++ b/src/scenes/speck_editor.lua @@ -16,6 +16,7 @@ local PROPERTY_CUSTOM = { scale_start_max = {min = 0, max = 16}, forcex = {min = -2048, max = 2048}, forcey = {min = -2048, max = 2048}, + damping = {min = 0, max = 128}, initial_velx = {min = 0, max = 2048}, initial_vely = {min = 0, max = 2048}, spread = {min = 0, max = 360}, 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", |
