aboutsummaryrefslogtreecommitdiff
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
parentc54b9912d0e8cabf1e92c1d5353010736e47364f (diff)
specks: initial velocity variation
-rw-r--r--res/speck/test.speck.lua2
-rw-r--r--src/scenes/speck_editor.lua6
-rw-r--r--src/specks.lua17
3 files changed, 17 insertions, 8 deletions
diff --git a/res/speck/test.speck.lua b/res/speck/test.speck.lua
index 8bbf940..925d719 100644
--- a/res/speck/test.speck.lua
+++ b/res/speck/test.speck.lua
@@ -1 +1 @@
-return {["scale_start_max"]=1.3,["scale_end_min"]=0,["scale_end_max"]=0,["forcex"]=0,["forcey"]=502.1,["initial_velx"]=100,["initial_vely"]=0,["spread"]=360,["lifetime_min"]=0.3,["interval"]=0.05,["spawn_width"]=100,["spawn_height"]=100,["lifetime_max"]=0.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,} \ No newline at end of file
+return {["forcex"]=0,["forcey"]=502.1,["damping"]=0,["initial_velx_min"]=0,["initial_velx_max"]=140.3,["initial_vely_min"]=0,["initial_vely_max"]=0,["spawn_width"]=100,["spawn_height"]=100,["interval"]=0.05,["texture_path"]="res/img/speck.png",["lifetime_max"]=0.6,["lifetime_min"]=0.3,["gradient"]="res/img/test_gradient.png",["spread"]=360,["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,} \ No newline at end of file
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