如何在Corona SDK / Lua中计算碰撞次数?

我有一个关于设计模式的简短问题。在碰撞期间,事件会被多次分派,这就是为什么你显然必须计数,以使其稳定。我的问题是:

我总是最终只是在每次碰撞中增加计数器,并在短暂延迟后重置它,这会导致臃肿的事件侦听器。有没有更优雅且易于实现的方法?有时它们可能很难调试。

像往常一样,提前感谢您的帮助!

问候,尼尔斯

点赞
用户7234533
用户7234533

Idurniat,你要求代码。以下是一个普遍问题的示例:

local physics = require("physics")
local object = display.newRect(display.contentCenterX, display.contentCenterY, 100, 100)
physics.start()
physics.addBody(object, "static", {isSensor = true})
function object.collision(self, event)
  if event.phase == "began" then
    print("log")
  end
end

现在,当一个动态物理对象撞击这个矩形时,会多次打印出“log”。由于这个原因,例如转换会多次启动并且变得混乱。使用计数器和计时器处理这个问题相当棘手。

提前致谢!

问候,尼尔斯

2017-03-30 21:54:46