From 1eeef68f5b395f2de2afbde2dba6cae650120668 Mon Sep 17 00:00:00 2001 From: ne_mene Date: Thu, 2 Apr 2026 12:24:51 +0200 Subject: specks: initial velocity variation --- res/speck/test.speck.lua | 2 +- src/scenes/speck_editor.lua | 6 ++++-- src/specks.lua | 17 ++++++++++++----- 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 -- cgit v1.3-2-g0d8e