如何通过沿对角线方向划分矩形来检查碰撞?

时间:2016-12-28 13:25:58

标签: c# unity3d 2d collision-detection

我尝试确定角色周围的东,西,南,北方向是否有鼠标。

enter image description here

enter image description here

我想确定鼠标是否在每种颜色的区域中。

如何编写代码?

1 个答案:

答案 0 :(得分:1)

我认为你应该把矩形的中间考虑为中心(0,0),而矩形的其他4个点必须有一个坐标,如(width / 2; hight / 2),右上角点,( - widht / 2; hight / 2)表示左上角等 之后,您可以使用此代码

float sign (fPoint p1, fPoint p2, fPoint p3){
    return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);} 

bool PointInTriangle (fPoint mousePos, fPoint v1, fPoint v2, fPointev3) { 
    bool b1, b2, b3;
    b1 = sign(mousePos, v1, v2) < 0.0f;
    b2 = sign(mousePos, v2, v3) < 0.0f;
    b3 = sign(mousePos, v3, v1) < 0.0f;
    return ((b1 == b2) && (b2 == b3));}