summaryrefslogtreecommitdiff
path: root/objects/room.lua
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-03-15 22:04:38 +0800
committerEltrac <hi@guhub.cn>2025-03-15 22:04:38 +0800
commit47927bad0624445f9c10722e8daee962ebf489d9 (patch)
tree8c23381687292aee615010e5976a54505522f306 /objects/room.lua
parentea925c7616524609d19ae528ea553d7509741b7c (diff)
fix: unexpected body retention and related issues
Diffstat (limited to 'objects/room.lua')
-rw-r--r--objects/room.lua16
1 files changed, 14 insertions, 2 deletions
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