aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorne_mene <[email protected]>2026-04-02 12:24:51 +0200
committerne_mene <[email protected]>2026-04-02 12:24:51 +0200
commit1eeef68f5b395f2de2afbde2dba6cae650120668 (patch)
tree95af232e4d36956dbb29dfc4089d64084edfeb89 /src
parentc54b9912d0e8cabf1e92c1d5353010736e47364f (diff)
specks: initial velocity variation
Diffstat (limited to 'src')
-rw-r--r--src/scenes/speck_editor.lua6
-rw-r--r--src/specks.lua17
2 files changed, 16 insertions, 7 deletions
diff --git a/src/scenes/speck_editor.lua b/src/scenes/speck_editor.lua
index bdba449..c9a47e6 100644
--- a/src/scenes/speck_editor.lua
+++ b/src/scenes/speck_editor.lua
@@ -17,8 +17,10 @@ local PROPERTY_CUSTOM = {
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},
+ initial_velx_max = {min = 0, max = 2048},
+ initial_velx_min = {min = 0, max = 2048},
+ initial_vely_max = {min = 0, max = 2048},
+ initial_vely_min = {min = 0, max = 2048},
spread = {min = 0, max = 360},
lifetime_min = {min = 0, max = 32},
lifetime_max = {min = 0, max = 32},
diff --git a/src/specks.lua b/src/specks.lua
index 7249539..f4cc025 100644
--- a/src/specks.lua
+++ b/src/specks.lua
@@ -59,8 +59,10 @@ function Speck_Sys.new()
self.forcey = 0
self.damping = 0
- self.initial_velx = 0
- self.initial_vely = 0
+ self.initial_velx_min = 0
+ self.initial_velx_max = 0
+ self.initial_vely_min = 0
+ self.initial_vely_max = 0
self.spread = 0
self.lifetime_min = 1
@@ -93,8 +95,10 @@ SPECK_EXPORTED_ARGS = {
"scale_end_max",
"forcex",
"forcey",
- "initial_velx",
- "initial_vely",
+ "initial_velx_min",
+ "initial_velx_max",
+ "initial_vely_min",
+ "initial_vely_max",
"damping",
"spread",
"lifetime_min",
@@ -142,7 +146,10 @@ function Speck_Sys:spawn_particles()
local offx, offy = shape_func(self)
data.pos[id] = { x = self.x + offx, y = self.y + offy }
- data.vel[id] = { x = self.initial_velx, y = self.initial_vely }
+ data.vel[id] = {
+ x = randf_range(self.initial_velx_min, self.initial_velx_max),
+ y = randf_range(self.initial_vely_min, self.initial_vely_max),
+ }
local beta = self.spread * math.pi / 180
beta = beta / 2