diff options
| author | ne_mene <[email protected]> | 2026-04-02 12:09:45 +0200 |
|---|---|---|
| committer | ne_mene <[email protected]> | 2026-04-02 12:09:45 +0200 |
| commit | 4112945e25abe208b7ddb3f5ba555f71a786c11e (patch) | |
| tree | ee89971750481c1a001718f83e64ecb54754222b | |
| parent | 6e9301728939b07fa1176c7aa57e2ec7aeaf0402 (diff) | |
specks: damping
| -rw-r--r-- | res/speck/savetest2.speck.lua | 2 | ||||
| -rw-r--r-- | src/scenes/speck_editor.lua | 1 | ||||
| -rw-r--r-- | src/specks.lua | 8 |
3 files changed, 8 insertions, 3 deletions
diff --git a/res/speck/savetest2.speck.lua b/res/speck/savetest2.speck.lua index 953e0e6..c279ddf 100644 --- a/res/speck/savetest2.speck.lua +++ b/res/speck/savetest2.speck.lua @@ -1 +1 @@ -return {["initial_vely"]=77.8,["spread"]=360,["lifetime_min"]=0.3,["interval"]=0.05,["spawn_width"]=100,["spawn_height"]=100,["lifetime_max"]=3.6,["gradient"]="res/img/test_gradient.png",["texture_path"]="res/img/speck.png",["spawn_shape"]="Point",["spawn_amount_min"]=3,["spawn_amount_max"]=4,["scale_curve"]="Lerp",["scale_start_min"]=0.8,["scale_start_max"]=1.3,["scale_end_min"]=0,["scale_end_max"]=0,["forcex"]=0,["forcey"]=-32.7,["initial_velx"]=0,}
\ No newline at end of file +return {["spawn_amount_min"]=12,["spawn_amount_max"]=20,["scale_curve"]="Lerp",["scale_start_min"]=0.8,["scale_start_max"]=1.3,["scale_end_min"]=0,["scale_end_max"]=0,["forcex"]=0,["forcey"]=502.1,["damping"]=11.3,["initial_velx"]=528.4,["initial_vely"]=0,["spread"]=360,["lifetime_min"]=0.3,["interval"]=1.03,["texture_path"]="res/img/speck.png",["lifetime_max"]=0.6,["spawn_shape"]="Point",["gradient"]="res/img/test_gradient.png",["spawn_height"]=100,["spawn_width"]=100,}
\ No newline at end of file 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", |
