diff options
| author | ne_mene <[email protected]> | 2026-03-20 14:50:49 +0100 |
|---|---|---|
| committer | ne_mene <[email protected]> | 2026-03-20 14:50:49 +0100 |
| commit | b5710b0a3845528cdf2cedb046bbaa88ae25de50 (patch) | |
| tree | a8947fa9e09f12f8cabe3ebb8d18a70abd409f2e /src/objs/specks.lua | |
| parent | f052b00bd2658dafd4d61209e9fa3e8b328126f0 (diff) | |
particle spread
Diffstat (limited to 'src/objs/specks.lua')
| -rw-r--r-- | src/objs/specks.lua | 12 |
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] |
