2013-06-26 44 views
0

我正在制作一个简单的“breakout”游戏,并且我有重新加载map的问题。例如:如果我从level1开始,打破一些砖块并丢失,比我再次加载相同的地图。接下来的那个球与同砖我“感动”碰撞时间之前,都会给我一个错误Attempt to remove an object that has already been removedCorona“尝试移除已被移除的物体”

local map = lime.loadMap("maps/" .. currentLevel .. ".tmx") 
local layer = map:getTileLayer("bricks_1") 
local visual = lime.createVisual(map) 
local physical = lime.buildPhysical(map) 


function removeBricks(event) 
    if event.other.isBrick then 
     local brick = event.other 
     transition.to(brick, {time = 20, alpha = 0}) 

     score = score + brick.scoreValue 
     ScoreNum.text = score 

     -- remove brick 
     brick:removeSelf() 
     brick = nil 
     ... 
+0

请写你的错误代码行。 – vovahost

回答

0

我认为event.other未创建你去你的游戏第二次您使用的故事板,如果这样你就可以尝试后,游戏就结束了,所以当你去你的游戏再次删除场景它将重新创建所有对象

0

你试试这个?

transition.to(brick, {time = 20, alpha = 0, onComplete = function() 
    if brick then 
     brick:removeSelf() 
     brick = nil 
    end 
end}) 
0

如果您正在使用物理,您还必须先执行一个physics.removeBody(brick),然后才能删除该对象本身,以便从物理引擎中分离出来。如果物理学不认为它仍然存在。