2015-02-09 30 views
0

我做了一些成熟,我試圖做的水平裝載系統,但我有一個問題,有我的代碼的一部分:Löve2D:對象消失,但身體仍然存在

--main.lua 
require "level1" ; require "level2" 
function love.load() 
       love.physics.setMeter(64) 
       world = love.physics.newWorld(0,9.81*64, true) 
    --[...] 
    level = 1 
end 

function love.draw() 
    if level == 1 then draw_level1() 
    elseif level == 2 then draw_level2() end 
end 

function love.update(dt) 
    world:update(dt) 
    if gs == "loading2" then unload_level2() ; load_level2() end 
    --[...] 
end 

function love.keypressed(key) 
    if key == "u" then level = 2 gs = "loading2" else gs = "normal" end 
end 

level1.lua:

--level1.lua 
function load_level1(world) 
obj1 = {} 
obj1.body = love.physics.newBody(world, 111,111, "dynamic") 
obj1.shape = love.physics.newRectangleShape(28,28) 
obj1.fixture = love.physics.newFixture(obj1.body,obj1.shape) 
end 
function unload_level1() 
obj1 = nil 
end 
function draw_level1() 
    love.graphics.polygon("line", obj1.body:getWorldPoints(obj1.shape:getPoints())) 
end 

而且level2.lua是相同的,但與其他矩形和功能,如「draw_level2()」

的問題是,當我按u鍵,對象消失時,但他們的身體仍然是t在這裏(當玩家觸摸它們時,發生碰撞但它們不可見)我該怎麼辦?

回答

0

首先,obj1 = nil不起作用。你也需要摧毀它們。這通過做obj1:destroy()as outlined here來完成。第二,在love.update中,關卡被破壞並在每個關卡創建。一旦你加載了新的關卡,你可能想要在一個被翻轉的快速變量(loaded = true)中進行攻擊。

當然,長期解決這個問題的方法是編寫適當的級別加載「類」 - 但假設您是初學者,現在應該沒問題。

相關問題