我有 2d map ,我想检查线是否与任何元素发生碰撞。我需要一个函数来告诉我直线是否与途中的任何对象相交。
看看:
红线不正确(函数应返回 false),绿线正确(返回 true)。 我的碰撞贴图是 bool 值贴图,1 代表墙,0 代表空白。
这怎么办?我读到我需要检查线是否与任何墙相交,但我完全不知道如何在 2d map 上执行此操作。
感谢任何回复。
最佳答案
这取决于您的墙的表示方式。
如果它们是矩形,则寻找 line/segment您的线与代表矩形的 4 段之间的交点。
如果它们是像素,您可以使用 bresenham line算法来查看线上的像素是否在这些 block 上。
关于c++ - 检查线是否穿过二维 map 上的墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707643/