summaryrefslogtreecommitdiffhomepage
path: root/world.lua
diff options
context:
space:
mode:
Diffstat (limited to 'world.lua')
-rw-r--r--world.lua54
1 files changed, 54 insertions, 0 deletions
diff --git a/world.lua b/world.lua
new file mode 100644
index 0000000..e4301e4
--- /dev/null
+++ b/world.lua
@@ -0,0 +1,54 @@
+-- `World`
+-- Used to manage physical world and everything inside it: clouds, platforms, nauts, background etc.
+
+-- WHOLE CODE HAS FLAG OF "need a cleanup"
+
+-- Metatable of `World`
+-- nils initialized in constructor
+World = {
+ world = nil,
+ nauts = nil,
+ platforms = nil,
+ clouds = nil,
+ camera = nil -- not sure yet? menu will need scaling too
+}
+
+-- Constructor of `World` ZA WARUDO!
+function World:new()
+ -- Meta
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ -- Physical world initialization
+ love.physics.setMeter(64)
+ o.world = love.physics.newWorld(0, 9.81*64, true)
+ o.world:setCallbacks(o.beginContact, o.endContact)
+ -- Empty tables for objects
+ local c = {}
+ o.clouds = c
+ local n = {}
+ o.nauts = n
+ local p = {}
+ o.platforms = {}
+ return o
+end
+
+-- Add new platform to the world
+function World:createPlatform(x, y, polygon, sprite)
+ table.insert(self.platforms, Ground:new(self.world, x, y, polygon, sprite))
+end
+
+-- Add new naut to the world
+function World:createNaut(x, y, sprite)
+ table.insert(self.nauts, Player:new(self.world, x, y, sprite))
+end
+
+-- Add new cloud to the world
+
+-- Update
+-- Keypressed
+-- Keyreleased
+-- Draw
+
+-- beginContact
+-- endContact \ No newline at end of file