c ++转弯矩形的碰撞检测

时间:2014-03-03 18:47:12

标签: c++ opengl

当我的玩家遇到一个物体时,我有一些碰撞检测工作。但这只适用于我的玩家x& y坐标击中了我的标记(这是我角色的中心)。

是否会使一个方法返回玩家纹理覆盖的所有坐标的向量,以及实现此方法的最佳方法是什么?

这是在c ++中创建自上而下的游戏

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到,最简单的可能是(取决于你使用类等)。 这是最简单的,但没有接近最好的,或者实际上非常好。这种方式意味着将“标记”更改为矩形的左下角。

void collisions()
{
    //check if the x-coord is between the furthest left and furthest right x coords
    if(rect.Getx() > someObject.Getx() && rect.Getx() < someObject.Getx() + someObject.GetWidth())
    {
        rect.SetMoveSpeed(0);
    }
    if(rect.Gety() > someObject.Gety() && rect.Gety() < someObject.Gety() + someObject.GetHeight())
    {
        rect.setMoveSpeed(0);
    }

}

然后,您必须在不发生碰撞时将移动速度设置为正常。如果再次设置移动速度,则可以在每个之后使用else完成。这是一个快速修复,不建议用于您计划在任何地方分发的游戏。