因为发布的原因,这里是我想要做的简单版本。电晕/ 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