diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/objs/player.lua | 3 | ||||
| -rw-r--r-- | src/objs/specks.lua | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/objs/player.lua b/src/objs/player.lua index 4a12334..caf2afd 100644 --- a/src/objs/player.lua +++ b/src/objs/player.lua @@ -102,7 +102,8 @@ function new_player(x, y) ent.speck_sys.lifetime_min = 0.3 ent.speck_sys.initial_velx = 100 - ent.speck_sys.initial_vely = -75 + ent.speck_sys.initial_vely = 0 + ent.speck_sys.spread = 360 ent.speck_sys.forcey = 1000 ent.speck_sys.bounce = true 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] |
