Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 物理对象不相互作用,但检测碰撞_Lua_Coronasdk_Physics - Fatal编程技术网

Lua 物理对象不相互作用,但检测碰撞

Lua 物理对象不相互作用,但检测碰撞,lua,coronasdk,physics,Lua,Coronasdk,Physics,我正在和一个收集硬币之类东西的家伙玩游戏。我想检测这两个角色之间的碰撞,这样我就可以移除硬币,但我不想让硬币与角色互动,因为现在它会稍微减慢角色的速度。但在碰撞之前,它仍应与地面相互作用。谢谢你的帮助 function createCoin() for i = 1, 10 do coin = display.newCircle(0, 0, 16) coin.x = totallength - 1000 + i * 100 coin.y =

我正在和一个收集硬币之类东西的家伙玩游戏。我想检测这两个角色之间的碰撞,这样我就可以移除硬币,但我不想让硬币与角色互动,因为现在它会稍微减慢角色的速度。但在碰撞之前,它仍应与地面相互作用。谢谢你的帮助

function createCoin()
    for i = 1, 10 do
        coin = display.newCircle(0, 0, 16)
        coin.x = totallength - 1000 + i * 100
        coin.y = totalheight - 200

        physics.addBody(coin,
            {bounce = 0, friction = 1, density = 0}
        )

        game:insert(coin)
        coin.myName = "coin"
    end
end

createCoin()

local function onCollision(event)
    if event.phase == "began" then
        if (event.object1.myName == "coin" and
                event.object2.myName == "wheel") then

            event.object1:removeSelf();     
        end 
    end
end

在冲突处理过程中,您无法删除冲突中涉及的对象:请参见第页的“修改对象”。请使用所述的
计时器。performWithDelay()
。这将阻止您的硬币与玩家交互。如果这不起作用,您可以创建一个跟随硬币的“幽灵”对象(相同大小的放置等,但不可见)并作为传感器添加到物理学中。传感器不会导致碰撞动力学,但会触发事件。如果需要移除硬币,您还需要延迟移除硬币。

请澄清您的问题?主要问题是速度减慢吗?它是由
摩擦
参数调节的。您可以根据使用
event.contact.摩擦力
。Reference:,。据我所知,这是用于碰撞前处理的。谢谢,我使用硬币作为传感器,并使用另一个小物理体让它与地面交互。