Python pygame:像素完美碰撞线条?

Python pygame:像素完美碰撞线条?,python,pygame,linear-algebra,collision,pixel-perfect,Python,Pygame,Linear Algebra,Collision,Pixel Perfect,我有一两个问题。我正在使用Pygame创建一个绘图游戏 我们有球在一个表面的内部弹跳,相互碰撞,撞在墙上。用鼠标可以画出直线,球也可以反弹 这些球是使用pygame.image绘制的,因为我们有一个ball.png覆盖球的表面和矩形。但是对于线条,我们只是使用pygame.draw.line()返回简单的矩形 我目前最大的问题是: 我选择在它自己的表面对象上画每一条线,然后把它们放在更大的“游戏画布”上。这是因为我想使用提供的像素完美碰撞检测,以及surfarray.array_colorkey

我有一两个问题。我正在使用Pygame创建一个绘图游戏

我们有球在一个表面的内部弹跳,相互碰撞,撞在墙上。用鼠标可以画出直线,球也可以反弹

这些球是使用pygame.image绘制的,因为我们有一个ball.png覆盖球的表面和矩形。但是对于线条,我们只是使用pygame.draw.line()返回简单的矩形

我目前最大的问题是:

我选择在它自己的表面对象上画每一条线,然后把它们放在更大的“游戏画布”上。这是因为我想使用提供的像素完美碰撞检测,以及surfarray.array_colorkey(),为此我需要一个底层曲面(球具有pygame.image返回的图像曲面)。我想要一个线的曲面,这样我就可以使用碰撞算法的透明度,否则球会从环绕线的矩形上反弹

Q1)没有更好的划线方法了吗?我想使用类似于图像或精灵的东西。有这样的事吗?

Q2)如果没有,我应该如何为每条线创建曲面,以便使用“游戏画布”中的坐标将线绘制到较小的曲面上相对容易,线不会被切断,并且上述像素完美碰撞有效?


Q3)如果我完全关闭/有更好的方法来进行碰撞、检测、绘图等。请,我洗耳恭听。

对于圆上的线,每像素碰撞是多余的

有关圆和线的二维碰撞的信息:

而且,
euclid
具有
圆。相交(第2行)
碰撞:

numpy
可能有更好的解决方案