我有一两个问题。我正在使用 Pygame 创建绘图游戏。
我们有球在一个表面上在内部弹跳,彼此和墙壁相撞。使用鼠标,您可以绘制直线,球反弹也反弹。
球是使用 pygame.image 绘制的,因为我们有一个 ball.png 覆盖球的表面和矩形。但是对于线条,我们只是使用 pygame.draw.line() 返回简单的矩形。
而我目前最大的问题:
我选择在自己的 Surface 对象上绘制每条线,然后将它们粘贴到更大的“游戏画布”上。这是因为我想使用此处提供的像素完美碰撞检测以及 surfarray.array_colorkey(),为此我需要一个底层 Surface(球具有 pygame.image 返回的图像 Surface)。我想要线条的 Surface 以便我可以使用碰撞算法的透明度方面,否则球会从包裹线条的 Rects 上反弹。
Q1) 有没有更好的画线方法?我想使用类似于图像或雪碧的东西。有这样的事吗?
Q2)如果不是,我应该如何为每条线创建 Surface,以便使用“游戏画布”中的坐标将线绘制到较小的 Surface 上相对容易,线不会被切断并且上述像素完美碰撞有效?
Q3)如果我完全关闭/有更好的方法来进行碰撞、检测、绘图等。拜托,我全神贯注。