3个点的物体移动是同时发生的。

我正在制作一个跳跃游戏,屏幕左边有一个物体在平台上。当物体成功跳跃并落在右边的平台上时,它会执行以下操作:

  1. 右侧平台向左移动

  2. 左侧平台(你刚刚跳下来的)移出屏幕。

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

我已经编写了允许物体跳跃并显示是否碰撞成功的函数。我的问题是,我提到的三件事情发生了,但它继续进行,不停留让物体进行下一次跳跃。这也使得物体离开屏幕,因为平台不断向左移动。经过调试,我觉得问题在碰撞发生的地方。这是因为,一旦它触碰到平台,碰撞就会不断发生,直到物体离开平台。我想知道你们能否帮助我解决这个问题!

这是我相关的一部分代码:

local onPlatform = false
local gameStarted = false

function playerCollision( self, event )
    if ( event.phase == "began" ) then
        --如果撞到底部栏,您会得到积分
        if event.target.type == "player" and event.other.type == "bottomColumn" then
            print ("hit column")
            onPlatform = true

        else
        --如果撞到其他任何东西,则 gameOver
            --composer.gotoScene( "restart" )

            print ("hit ground")
        end
    end
end

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

            --列移动速度
            --如果大于-100,则继续向左移动
            --把平台放在右边并停止
            if (elements[a].x > display.contentWidth/1.1) then
                elements[a].x = elements[a].x - 12
            end
            --成功降落后将平台移向左侧
            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
            --将左侧平台移至屏幕外,并在通过某个X轴后删除
            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

            --在左侧超过一定的X轴时添加分数
                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
点赞
用户2305605
用户2305605

将下面翻译成中文并且保留原本的 markdown 格式

When are you calling moveColumns?? Could you just call it from within playerCollision and remove the onPlatform variable? Probably need a bit more code to help properly.

你在什么时候调用 moveColumns 呢?你能在 playerCollision 中调用它并删除 onPlatform 变量吗?可能需要更多的代码来帮助解决问题。

2015-07-29 01:05:57