aboutsummaryrefslogtreecommitdiff
path: root/src/objs/specks.lua
diff options
context:
space:
mode:
authorne_mene <[email protected]>2026-03-20 14:50:49 +0100
committerne_mene <[email protected]>2026-03-20 14:50:49 +0100
commitb5710b0a3845528cdf2cedb046bbaa88ae25de50 (patch)
treea8947fa9e09f12f8cabe3ebb8d18a70abd409f2e /src/objs/specks.lua
parentf052b00bd2658dafd4d61209e9fa3e8b328126f0 (diff)
particle spread
Diffstat (limited to 'src/objs/specks.lua')
-rw-r--r--src/objs/specks.lua12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/objs/specks.lua b/src/objs/specks.lua
index 229eb23..485a58a 100644
--- a/src/objs/specks.lua
+++ b/src/objs/specks.lua
@@ -32,6 +32,7 @@ function Speck_Sys.new()
self.initial_velx = 0
self.initial_vely = 0
+ self.spread = 0
self.lifetime_min = 1
self.lifetime_max = 5
@@ -81,6 +82,17 @@ function Speck_Sys:update(dt)
data.pos[id] = { x = self.x, y = self.y }
data.vel[id] = { x = self.initial_velx, y = self.initial_vely }
+ local beta = self.spread * math.pi / 180
+ beta = beta / 2
+ beta = randf_range(-beta, beta)
+
+ local rvx = (data.vel[id].x * math.cos(beta))
+ - (data.vel[id].y * math.sin(beta))
+ local rvy = (data.vel[id].x * math.sin(beta))
+ + (data.vel[id].y * math.cos(beta))
+ data.vel[id].x = rvx
+ data.vel[id].y = rvy
+
data.lifetime[id] = randf_range(
self.lifetime_min, self.lifetime_max)
data.lifetime_max[id] = data.lifetime[id]