【问题标题】: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)

【讨论】:

    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 2014-05-31
    • 2018-04-10
    • 1970-01-01
    相关资源
    最近更新 更多