diff options
| author | Eltrac <hi@guhub.cn> | 2025-03-15 22:04:38 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-03-15 22:04:38 +0800 |
| commit | 47927bad0624445f9c10722e8daee962ebf489d9 (patch) | |
| tree | 8c23381687292aee615010e5976a54505522f306 /objects/room.lua | |
| parent | ea925c7616524609d19ae528ea553d7509741b7c (diff) | |
fix: unexpected body retention and related issues
Diffstat (limited to 'objects/room.lua')
| -rw-r--r-- | objects/room.lua | 16 |
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 |
