【问题标题】:One by one addEventListener collision一一添加事件监听器碰撞
【发布时间】:2013-06-27 14:13:00
【问题描述】:
我正在开发一个简单的突围游戏,但 ball:addEventListener( "collision", removeBricks ) 有问题,它可以正常工作,直到球同时击中两个砖块,而不是向上/向下方向 (vy) 切换两次,使球继续向上或向下移动。
如何一个一个的addEventListener碰撞,一次禁用多个碰撞?
function removeBricks(event)
if event.other.isBrick == 1 then
vy = vy * (-1)
...
end
end
【问题讨论】:
标签:
sdk
lua
collision-detection
coronasdk
game-engine
【解决方案1】:
您可以在removeBricks 函数中改变球的速度,而不是改变球的速度,您可以只翻转一个标志,表示“球撞到了一些砖块,应该改变它的方向”,然后在你的enterFrame 处理程序中改变球的速度:
local ballHasCollided = false
local function removeBricks(event)
if event.other.isBrick == 1 then
ballHasCollided = true
end
end
local function updateBallVelocity(event)
if ballHasCollided then
ballHasCollided = false
ball.vy = -ball.vy
-- ...
end
-- your game set up code somewhere
Runtime:addEventListener('enterFrame', updateBallVelocity)