在我的太空飞船上渲染错误

时间:2012-04-08 01:01:53

标签: python rendering pygame

我正在构建一个小型太空入侵者类型的游戏。或至少尝试。然而,大多数事情都有效,我有一个糟糕的反复出现的错误。游戏有时候很完美。然而,大约每隔一段时间左右,它在我爆炸了几个敌人并且出现以下错误后退出: Traceback (most recent call last): enemies[count].render()pygame.error:display Surface quit。第二个错误似乎总是弹出,即使程序看起来很好。

这是我的渲染功能:

def render(self):
    screen.blit(self.bitmap, (self.x, self.y))

如果需要,我可以发布和/或链接到完整的代码。

2 个答案:

答案 0 :(得分:1)

这更像是pygame中的一个问题,影响了你的具体设置。尝试改变一些事情,例如pygame是否使用硬件加速(检查pygame.screen.set_mode上的文档)并切换它们。

答案 1 :(得分:1)

根据我的猜测,您可能会获得已经被垃圾收集的表面的引用,并且当pygame无法对表面进行blit时它会退出。

要解决此问题,请仔细检查您的代码,并确保在从游戏中移除对象时将其从“敌人”列表中删除。

另一种解决方案是使用PyGame内置的Group类。它将为您跟踪已删除的对象,您无需担心此类问题。