因爲發佈的原因,這裏是我想要做的簡單版本。電暈/ Box2D檢測與非移動靜態物體的碰撞
在屏幕上我有一個簡單的圓形對象,它是靜態的,不會移動。用戶然後可以拖放一條直線。如果線條穿過那個圓圈,我希望觸發碰撞事件。
看來,除非其中一個物體正在移動,否則碰撞永遠不會被檢測到。畫線時可以檢測到碰撞嗎?
碰撞事件
function onHit(e)
print("hit");
end
Runtime:addEventListener("collision", onHit)
觸摸事件
local startX = 0;
local startY = 0;
local endX = 0;
local endY = 0;
function onTouch(e)
if(e.phase == "began") then
startX = e.x
startY = e.y
elseif(e.phase == "moved") then
endX = e.x
endY = e.y
elseif(e.phase == "ended") then
local line = display.newLine(startX, startY, endX, endY)
line:setColor(100, 100, 100)
line.width = 2
physics.addBody(line, "static", { })
end
end
Runtime:addEventListener("touch", onTouch)
創建圈子
local c = display.newCircle(50, 50, 24)
physics.addBody(c, "static", { radius = 24 })
有趣的工作周圍。雖然不是最好的解決方案,正如你已經說過的,但它是唯一提供的解決方案。謝謝。 – Paramount