三点物体移动一下子发生

时间:2015-07-23 23:11:22

标签: lua corona

我正在制作一个跳跃游戏,屏幕左侧有一个物体,在平台上。一旦对象成功跳转并落在右侧平台上,它就会执行以下操作:

1)右边的平台向左移动

2)左边的平台(你刚跳出来)在屏幕外移动。

3)新平台应该出现在屏幕的右侧,从而继续循环。

我已经完成了允许对象跳转的功能,并显示碰撞是否成功。我的问题是,我上面提到的3件事情发生了,但它继续前进并且不会停止让对象进行下一次跳跃。这使得物体也离开屏幕,因为平台继续向左移动。调试后,我觉得问题出在碰撞发生的地方。这是因为,一旦它接触到平台,碰撞就会继续发生,直到物体离开平台。我想知道你们是否可以帮助我!

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

local onPlatform = false
local gameStarted = false


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


        else
        --if hit anything else, gameOver
            --composer.gotoScene( "restart" )

            print ("hit ground")
        end
    end
end


function moveColumns()
        for a = elements.numChildren,1,-1  do

            --speed of columns moving
            --if greater than -100, keep moving it to left
            --puts platform at the right and stops
            if (elements[a].x > display.contentWidth/1.1) then
                elements[a].x = elements[a].x - 12
            end
            --moves platform to left after it successfully lands
            if (onPlatform == true) then
                if (elements[a].x > display.contentWidth/3 and elements[a].x < display.contentWidth/1.11) then
                    elements[a].x = elements[a].x - 12
                end
            end
            --moves left platform to off-screen and deletes after it passes a certain X-axis
            if (onPlatform == true) then
                if(elements[a].x > -100 and elements[a].x < display.contentWidth/2.99) then
                    elements[a].x = elements[a].x - 12

            --adds score if it goes past a certain X-axis at left side
                elseif(elements[a].x < -100) then
                mydata.score = mydata.score + 1
                tb.text = mydata.score
                elements[a].scoreAdded = true

                elements:remove(elements[a])
                elements[a] = nil
                end
            end 
        end
end

1 个答案:

答案 0 :(得分:0)

你什么时候调用moveColumns?你能从playerCollision中调用它并删除onPlatform变量吗?可能需要更多代码来帮助正确。