中文编程pygame游戏教程5_检测碰撞

区块和点的碰撞
区块.碰撞点检测(点位置)如果点与区块重叠(碰撞),则该函数返回 True。
我们利用这个功能做一个用鼠标拖动矩形的实例. 使用该方法以检查鼠标单击是否发生在区块内。 如果是这种情况,我们通过鼠标拖动矩形.
变量移动中是在鼠标按钮在区块内按下时设置的。 在按钮鼠标松开之前,它保持 True。区块仅在鼠标单击区块时移动 。当区块移动时,我们添加一个蓝色轮廓。

区块与多个点碰撞
与多个点碰撞, 可以使用点列表循环检查. 在下面的程序中,我们创建 100 个随机点, 如果它们落在矩形内,将它们涂成红色,矩形外则涂成蓝色。

每次按下 R 键时,都会创建 100 个新的随机点。
区块与区块的碰撞
区块.碰撞区块检测(区块)方法检查一个区块是否与另一个区块冲突。 在下面的程序中,我们创建 50 个随机矩形,如果它们在绿色矩形内部, 就将它们着色为红色.

每次按下 R 键时,都会创建 50 个新的随机矩形。
多个区块之间的碰撞
区块.碰撞区块检测(区块)方法检查一个区块是否与另一个区块冲突。 如果我们想知道是否有任何两个重叠的区块, 然后我们必须将每个区块相互比较。这需要进行两次的嵌套循环, 让每个区块逐个与其他区块一一比较。(这个写法有些复杂, 我们之后会使用精灵组模块的碰撞方法, 能大大简化代码)

运行下面代码, 产生30个随机矩形, 如果某个矩形与其他矩形有重叠, 就会呈现红色, 独立的矩形会呈现蓝色. 每个矩形上面还显示了它们的编号.
每次按下 R 键时,都会创建 30 个新的随机矩形。