计算 Corona SDK 中的碰撞次数/Lua...?
Count collisions in Corona SDK / Lua...?
我有一个与设计模式相关的简短问题。在碰撞期间,一个事件会被分派多次,这就是为什么你显然必须对它们进行计数,以使其稳定。我的问题:
我总是最终只是递增一个计数器并在每次碰撞时以短暂的延迟重置它,这会导致庞大的事件监听器。有人有更优雅和更可监督的方式吗?他们有时很难调试。
一如既往,提前感谢您的帮助!
你好,尼尔斯
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"。因此,例如转换会多次开始并造成混乱。用计数器和计时器来处理这个问题非常棘手。
提前致谢!
你好,尼尔斯
我有一个与设计模式相关的简短问题。在碰撞期间,一个事件会被分派多次,这就是为什么你显然必须对它们进行计数,以使其稳定。我的问题:
我总是最终只是递增一个计数器并在每次碰撞时以短暂的延迟重置它,这会导致庞大的事件监听器。有人有更优雅和更可监督的方式吗?他们有时很难调试。
一如既往,提前感谢您的帮助!
你好,尼尔斯
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"。因此,例如转换会多次开始并造成混乱。用计数器和计时器来处理这个问题非常棘手。
提前致谢!
你好,尼尔斯