找一个SDL碰撞检测代码~迷宫游戏设计

方法有很多。

最简单和最慢的方法是读取迷宫表面的像素,这些像素落在球所在的矩形内。如果离球中心的距离小于半径,颜色为黑色,那么就会发生碰撞。

还有一个简单的方法(不优化)。如果球的移动步骤是一个正方形网格,用一个2维矩阵标记每个小正方形是否可以通过四个方向。当球移动时,根据球的移动方向找出网格对应的方向是否可以通过:

typedef枚举{ LEFT=1,UP=2,RIGHT=4,DOWN=8 }块。

typedef结构

{

块块;

}网格;

网格图[10][10];

...

如果(!(映射[y][x]。街区& ampLEFT)) {//左侧可以通过。

//行走代码

}

这个方法还可以改进:如果球的步长不是正方形,用球心的坐标计算出它可能往哪个方向撞墙,然后根据墙的存在判断是否可以通过。