我有几个不同的类扩展了 pygame Sprite 类,最初我只是使用外部图像制作一个 pygame Surface 对象,然后将该图像绘制到我的屏幕上。我有大量的这些 Sprite ,所以我将它们包含在一个 RenderClear 组中,然后为了简单起见,只需清除并绘制该组。这是有效的,直到我决定使用 pygame 绘制自己的图形。

我制作了一个图像 Surface,而不是外部图像,并在其上绘制一个圆圈,如下所示:

pygame.draw.circle(self.image, self.color,
                       (int(self.x), int(self.y)), self.radius, 0)

但是,当我将其绘制到屏幕上时,该圆圈不会出现。什么都没有出现,它只是一个透明的表面。

我还测试了使用相同的参数直接在屏幕上绘制一个圆圈,并且可以,但是如果我绘制 Sprite 的图像,则什么也没有。有任何想法吗?

最佳答案

您需要在类内部创建一个更新方法,然后在方法内部将圆圈和东西绘制到窗口表面。然后,每次绘制 RenderClear 组时,调用 RenderClear.update() 它将绘制您想要的所有其他内容。

关于python - 在 pygame 中绘制 Sprite 的表面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13734289/

10-11 22:05
查看更多