使对象在lua问题中移动得更快

时间:2014-11-03 16:29:41

标签: android lua

我在lua中创建了一个游戏。在电晕模拟器中,一切似乎都很好用。但是当我在我的设备上安装游戏时,他的游戏在连续3-4次迭代后开始挂起。 (意思是当我点击“重播”再次播放时,游戏开始挂起。 这就是我试过的:

function animal()   
local animal=display.newImage("animal.png") 

    local z= math.random(1,1000)

      if z<=300
        then
        animal.x=330
          animal.y= centerY + 80

      elseif z<=650
           then
          animal.x= centerX + 60
          animal.y=centerY + 100

      else
          animal.x= 1180
          animal.y=centerY + 100
      end

        animal.trans=transition.to (animal, {time=1001, y=-150, alpha=1, onComplete = gameOver})
        animal: addEventListener ( "tap" , disapp )

function remove_listen_animal()
    Runtime: removeEventListener ( "tap" , disapp )
    return
end

function remove_animal()
    display.remove(animal)
end
end

local function disapp (event)                           
    local obj = event.target


    transition.cancel (event.target.trans)
    display.remove(obj)
    animal()


return
end

function gameOver()

    transition.cancel()
    remove_animal() --removes object from gameOver screen
    remove_listen_animal() --removes animal event listener
    scoreText.text=nil
    mainScreen() --This is the function invoked at very first when game is started. In order to restart the game,I re-invoked this function.

end

现在当我开始游戏时,第一次运行在设备上变得完美。但是当游戏结束时,我再次点击“玩”游戏。按钮播放,然后游戏开始挂起。 请帮帮我吗? 此外,我希望对象的移动速度[如在transition.to()]中快。这可能是2-3次迭代后游戏停止的原因吗?

P.S我认为问题在于gameOver功能。在调用gameOver函数时,是否有任何方法可以杀死/结束所有正在运行的操作? 因为当我关闭它后重新启动游戏时,第一次迭代再次运行正常,但后来再次挂起。

请帮忙吗? 感谢

1 个答案:

答案 0 :(得分:0)

你在游戏中使用composer吗?如果没有,当你正确使用它时,作曲家会解决一些关于内存泄漏的问题。试试这个:

function remove_animal()
  display.remove(animal)
  animal = nil
end

并且避免在全局范围内显示您的函数,如果仅在某个场景中需要该函数,则始终将其置于局部。