如何使用Pygame在同一表面上显示来自不同文件的对象?

时间:2017-02-27 18:11:41

标签: python pygame

我正在pygame制作一个非常简单的2D游戏,我制作了几个带有类的文件,这些文件定义了一些粒子的特征以及地形的外观。问题是我不能让他们同时在同一个表面上显示。我试着摆弄它但是当我跑它时,地形最终显示没有颗粒。只有在我退出第一个窗口后,粒子才会出现在单独的窗口中。 所以我的问题是:

如何使用Pygame在同一表面/屏幕上显示不同文件中的对象?

我正在使用pygame.draw函数绘制播放器和粒子。

其中一个课程的一部分:

class Volcano():
    def __init__(self, x, y, size):
        self.x = x
        self.y = y
        self.size = size
        self.colour = (0, 0, 255)
        self.thickness = 1
        self.speed = 0
        self.angle = 0

    def display(self):
        pygame.draw.circle(screen, self.colour, (int(self.x), int(self.y)), self.size, self.thickness)

1 个答案:

答案 0 :(得分:0)

目标 Surface 需要是 draw 方法的参数:

class Volcano():
    # [...]

    def display(self, surf):
        pygame.draw.circle(surf, self.colour, 
            (int(self.x), int(self.y)), self.size, self.thickness)

在调用时将 screen Surface 传递给 draw 方法:

volcano = Volcano(x, y, size)
volcano.draw(screen)