2
我有一系列定義爲圓形物體的如下:電暈 - 碰撞檢測
local myBalloon = display.newImageRect("images/cracker.png", 20, 20);
myBalloon:setReferencePoint(display.CenterReferencePoint);
myBalloon.x = Random(50, _W-50);
myBalloon.y = (-10);
myBalloon.myName="balloon"
myBalloon.isSleepingAllowed = false;
physics.addBody(myBalloon, "dynamic", {density=3.0, friction=1.0, bounce=0.0, radius=9});
我然後有定義爲這樣一個單一的可動oject:
local threeWay = display.newImageRect("images/3way.png", 80, 43);
threeWay:setReferencePoint(display.CenterReferencePoint);
threeWay.x = (display.contentWidth/2);
threeWay.y = (display.contentHeight -15);
threeWay.myName = "threeway"
pentagonShape = { -40,-5, 0,-22, 40,-5, 35,20, -35,20 }
physics.addBody(threeWay, "static", {density=4.0, friction=1.7, bounce=0.0, shape=pentagonShape});
我還碰撞檢測設置對於像這樣的圓形物體:
function myBalloon:collision(e)
if (timeLeft ~= false) then
if (playerReady == true) then
if (e.phase == "ended") then
if (e.other.myName == "threeway") then
audio.play(balloonPop);
removeBalloons(self);
end
end
end
end
end
大部分的碰撞工作,但有時候會發生物體會落在可移動的物體上,並在碰撞檢測之前處理掉一點點。
如何爲碰撞提供更爲即時的效果? 對象的屬性是否需要不同,以便碰撞時有更多的「強制」?
我說這一點,我仍然得到滾動行爲。 – user1247395
氣球可以忽略其他東西嗎? – speeder
我覺得它是我們的。我正在查看e.phase並在「結束」時執行刪除操作。我改變了這個「開始」,並得到了我需要的行爲。它並沒有最終成爲固定我的「isSensor」,但你最後的評論讓我有點不同的看待碰撞事件。謝謝你。 – user1247395