0

私はコロナSDKを学んでおり、その目的で小さなプロジェクトを作っています。

だから、私の問題は次の問題です.2つの物理オブジェクトを作成し、そのうちの1つが他のオブジェクトと衝突したときに「爆発」させることができました。私の質問は、衝突時に他のオブジェクト (線形インパルスが適用されている) を停止させる方法です。また、停止するときは、他のオブジェクトとの衝突を避けるために画面から削除する必要があります...

衝突時に最初のオブジェクトを削除する部分は次のとおりです。

nloDrop = function()
local nlo = display.newImageRect("nlo.png", 65, 25)
nlo.x = 35 + mRand(410) ; nlo.y = -60
physics.addBody(nlo, "dynamic", {density=1, bounce = 0, friction = 0, filter = {maskBits = 4, categoryBits = 2}})
nlo:applyLinearImpulse(0, 0.8, nlo.x, nlo.y)
nlo.isSensor = true
nlo.collision = nloCollision
nlo:addEventListener("collision", nlo)
nlo.name = "nlo"
toFront()

終わり

そして、ここに「衝突」機能があります:

function nloCollision(self, event)
if ((event.other.myName == "weaponName") then
    print("funkc")
    self:removeSelf()
    self:removeEventListener("collision", nlo)
    self = nil
    if weapon ~= nil then
        -- stop moving of weapon
    end
end

終わり

ありがとう!

4

2 に答える 2

1

オブジェクト bodyActive を false にすると、物理に反応しなくなります。アクティブな画面内で物理からボディを削除することはできないため、そのオブジェクトを画面から除外することをお勧めします。

于 2013-06-13T10:24:08.777 に答える