繁体   English   中英

电晕sdk物理对象不相互作用,但可以检测到碰撞

[英]Corona sdk Physics objects not interact, but detect collision

我正在和一个收集硬币等东西的家伙做游戏。 我想检测这两者之间的碰撞,因此我可以取出硬币,但我不希望硬币与角色互动,因为现在它在稍微减慢他的速度。 不过,碰撞前它仍应与地面相互作用。 谢谢你的帮助!

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

您无法在碰撞处理过程中移除与碰撞有关的对象:请参阅碰撞事件页面上的“修改对象”。如所记录的那样使用timer.performWithDelay() 。这应防止硬币与玩家进行互动。如果这样做不起作用,则可以创建一个“鬼”对象,该对象随处可见(大小相同等位置但不可见)硬币,并作为传感器添加到物理中。传感器不会引起碰撞动态,但会触发事件。您还需要延迟如果需要去除硬币,则去除硬币。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM