【问题标题】:Drawing to a sprite's surface in pygame在pygame中绘制到精灵的表面
【发布时间】:2012-12-06 23:14:47
【问题描述】:

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

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

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

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

我还测试了用相同的参数直接在屏幕上画一个圆,这很有效,但是如果我画精灵的图像,什么都没有。有什么想法吗?

【问题讨论】:

  • 你能显示所有类的代码吗?您是在绘制之前创建一个 Surface 并将其分配给 self.image 吗?

标签: python pygame


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多