diff options
-rw-r--r-- | ground.lua | 6 | ||||
-rw-r--r-- | main.lua | 1 | ||||
-rw-r--r-- | menu.lua | 4 | ||||
-rw-r--r-- | player.lua | 6 | ||||
-rw-r--r-- | world.lua | 12 |
5 files changed, 29 insertions, 0 deletions
@@ -28,6 +28,12 @@ function Ground:new (game, world, x, y, shape, sprite) return o end +-- Destructor of `Ground` +function Ground:delete () + -- body deletion is handled by world deletion + self.sprite = nil +end + -- Draw of `Ground` function Ground:draw (offset_x, offset_y, scale, debug) -- defaults @@ -86,6 +86,7 @@ function love.keypressed (key) end if key == "f5" and debug then local new = World:new("default", {"leon", Controllers[1]}, {"lonestar", Controllers[2]}) + Scene:delete() changeScene(new) end end @@ -33,6 +33,10 @@ function Menu:new () return o end +-- Destructor +function Menu:delete() +end + -- Naut selector function Menu:newSelector() local selector = Selector:new(self) @@ -74,6 +74,12 @@ function Player:new (game, world, x, y, name) return o end +-- Destructor of `Player` +function Player:delete() + -- body deletion is handled by world deletion + self.sprite = nil +end + function Player:assignController(controller) self.controller = controller or nil controller:setParent(self) @@ -65,6 +65,18 @@ function World:new(map, ...) return o end +-- The end of the world +function World:delete() + self.world:destroy() + for _,platform in pairs(self.Platforms) do + platform:delete() + end + for _,naut in pairs(self.Nauts) do + naut:delete() + end + self = nil +end + -- Load map from file function World:loadMap(name) local name = name or "default" |