From 47927bad0624445f9c10722e8daee962ebf489d9 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Sat, 15 Mar 2025 22:04:38 +0800 Subject: fix: unexpected body retention and related issues --- objects/room.lua | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'objects/room.lua') diff --git a/objects/room.lua b/objects/room.lua index 401dff1..6a84404 100644 --- a/objects/room.lua +++ b/objects/room.lua @@ -236,6 +236,10 @@ function Room:init() end end + for _, door in pairs(self.doors) do + G.BodyLifeCycleManager:create(door, { door.w, door.h }, "static") + end + self.walls = self:addWalls() -- play music @@ -250,15 +254,23 @@ function Room:init() end end -function Room:removeAllBodies() +function Room:unload() for _, group in pairs(self.objects) do for _, obj in ipairs(group) do G.BodyLifeCycleManager:destroy(obj.physicsBody) end + group = {} end + for _, wall in ipairs(self.walls) do - G.BodyLifeCycleManager:destroy(wall.body) + G.BodyLifeCycleManager:destroy(wall.physicsBody) end + self.walls = {} + + for _, door in pairs(self.doors) do + G.BodyLifeCycleManager:destroy(door.physicsBody) + end + self.objects.shots = {} end -- cgit v1.2.3