停止导致多个事件的多次碰撞

时间:2015-07-25 17:56:23

标签: lua corona

我正在制作一个游戏而且我遇到了问题,当角色跳上一个物体时,会发生一系列事件。但是,因为它多次与对象碰撞,事件会多次发生,这是我不想要的。我想要的是在角色跳过对象并停留在对象顶部之后事件发生一次。那么,当角色跳到另一个物体上时,让事件再次发生......等等。

以下是我的相关代码的一部分:

function playerCollision( self, event )
        --if hit bottom column, u get points
        if event.target.type == "player" and event.other.type == "startColumn2" then
            if event.phase == "began" then

                print ("collided")
                addColumns()
                timer.performWithDelay(5000, addBody)
                startColumn2: translate(-4, 0)
                startcolumn2hit = true
            end
        end


        if event.target.type == "player" and event.other.type == "bottomColumn" then
            print ("hit column")
            onPlatform = true
        end

end

如何制作它以防止多次碰撞?

1 个答案:

答案 0 :(得分:0)

在第一次碰撞时,您可以在玩家与之碰撞的对象上设置布尔标志。我在这里添加alreadyCollided并检查我们是否已经与它发生冲突:

function playerCollision( self, event )
    --if hit bottom column, u get points
    if event.target.type == "player" and event.other.type == "startColumn2" then
        if event.phase == "began" then

            addColumns()
            timer.performWithDelay(5000, addBody)
            startColumn2: translate(-4, 0)
            startcolumn2hit = true
        end
    end


    if event.target.type == "player" and event.other.type == "bottomColumn" and not event.other.alreadyCollided then
        event.other.alreadyCollided = true
        -- Increase score etc...
    end