我在Godot中制作了一个半圆形的2D形状。现在,我试图给它适当的碰撞。到目前为止,我还没有办法做到这一点。 CollisionShape2D节点仅允许使用简单的形状,例如圆形和矩形,而CollisionPolygon2D形状则不允许我制作所需的弯曲形状。我有什么办法可以得到正确的碰撞?
答案 0 :(得分:0)
我对执行此操作的内置函数不熟悉。
但是,您可以做两件事:
说这是在head_dir方向上的半圆。简单地:
dir := head_dir
position := this object position
circRadius := semi-circle radius
otherPos := other object position
inside = false
if(dotProduct(dir, otherPos) >= 0):
inside = true
if(inside):
if(norm(otherPos - position) > radius)
inside = false
return inside
第二种方法将为您提供您要查找的确切碰撞。您只需要更新head_dir。