summaryrefslogtreecommitdiffhomepage
path: root/world.lua
diff options
context:
space:
mode:
authorAki <nthirtyone@gmail.com>2016-05-17 00:55:02 +0200
committerAki <nthirtyone@gmail.com>2016-05-17 00:55:02 +0200
commiteb8b36111c308deed093c1eda6794cb52fcbe227 (patch)
treeb7553058849748f9e0a4784f4f24ede6c455f5b8 /world.lua
parent7f4ed3b00397beb9a7471570515cf9e3c0ce5027 (diff)
downloadroflnauts-eb8b36111c308deed093c1eda6794cb52fcbe227.zip
roflnauts-eb8b36111c308deed093c1eda6794cb52fcbe227.tar.gz
roflnauts-eb8b36111c308deed093c1eda6794cb52fcbe227.tar.bz2
Effects added
Diffstat (limited to 'world.lua')
-rw-r--r--world.lua46
1 files changed, 42 insertions, 4 deletions
diff --git a/world.lua b/world.lua
index 1d1c6d4..733f9aa 100644
--- a/world.lua
+++ b/world.lua
@@ -11,6 +11,8 @@ World = {
Nauts = nil,
Platforms = nil,
Clouds = nil,
+ EffectsBottom = nil,
+ EffectsTop = nil,
camera = nil,
-- cloud generator
clouds_delay = 6,
@@ -30,10 +32,14 @@ function World:new()
-- Empty tables for objects
local n = {}
o.Nauts = n
- local p = {}
+ local p = {}
o.Platforms = {}
- local c = {}
- o.Clouds = c
+ local c = {}
+ o.Clouds = c
+ local eb = {}
+ local et = {}
+ o.EffectsBottom = eb
+ o.EffectsTop = et
-- Random init
math.randomseed(os.time())
-- Create camera
@@ -80,6 +86,16 @@ function World:randomizeCloud(outside)
self:createCloud(x, y, t, v)
end
+-- Add an effect behind nauts
+function World:createEffectBottom(name, x, y)
+ table.insert(self.EffectsBottom, Effect:new(name, x, y))
+end
+
+-- Add an effect behind nauts
+function World:createEffectTop(name, x, y)
+ table.insert(self.EffectsTop, Effect:new(name, x, y))
+end
+
-- Update ZU WARUDO
function World:update(dt)
-- Physical world
@@ -106,6 +122,17 @@ function World:update(dt)
table.remove(self.Clouds, _)
end
end
+ -- Effects
+ for _,effect in pairs(self.EffectsBottom) do
+ if effect:update(dt) then
+ table.remove(self.EffectsBottom, _)
+ end
+ end
+ for _,effect in pairs(self.EffectsTop) do
+ if effect:update(dt) then
+ table.remove(self.EffectsTop, _)
+ end
+ end
end
-- Keypressed
@@ -136,7 +163,12 @@ function World:draw()
-- Draw clouds
for _,cloud in pairs(self.Clouds) do
- local foo = cloud:draw(offset_x, offset_y, scale)
+ cloud:draw(offset_x, offset_y, scale)
+ end
+
+ -- Draw effects bottom
+ for _,effect in pairs(self.EffectsBottom) do
+ effect:draw(offset_x,offset_y, scale)
end
-- Draw ground
@@ -148,6 +180,11 @@ function World:draw()
for _,naut in pairs(self.Nauts) do
naut:draw(offset_x, offset_y, scale, debug)
end
+
+ -- Draw effects top
+ for _,effect in pairs(self.EffectsTop) do
+ effect:draw(offset_x,offset_y, scale)
+ end
end
-- beginContact
@@ -157,6 +194,7 @@ function World.beginContact(a, b, coll)
print(b:getUserData().name .. " is not in air")
b:getUserData().inAir = false
b:getUserData().jumpdouble = true
+ w:createEffectBottom("land", b:getBody():getX()-12, b:getBody():getY()-15)
end
end