diff options
Diffstat (limited to 'world.lua')
-rw-r--r-- | world.lua | 54 |
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 |