2012-04-08 52 views
0

我正在構建一個小型太空侵略者類型的遊戲。或者至少嘗試。然而,大多數情況下,我有一個不良循環錯誤。有時遊戲完美無缺。然而,大約每隔一段時間左右,它在我爆炸了幾個敵人之後退出,並給出以下錯誤: Traceback (most recent call last): enemies[count].render()pygame.error:display Surface quit。第二個錯誤似乎總是彈出來,即使程序看起來功能不錯。我的宇宙飛船上的渲染錯誤

這是我的渲染功能:

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

如果需要的話我可以發佈信息和/或鏈接到全部代碼。

回答

1

從我所能猜到的情況來看,你可能已經獲得了已經被垃圾收集的表面的引用,並且pygame在無法表面浮動時正在退出。

要解決這個問題,請仔細閱讀您的代碼,並確保您在從遊戲中刪除對象時從「敵人」列表中刪除對象。

另一種解決方案是使用PyGame內置的Group類。它會爲你追蹤已刪除的對象,你不需要擔心這個問題。

1

這就像是pygame中的一個問題,它影響着你的特定設置。嘗試改變,比如pygame是否使用硬件加速(請查看pygame.screen.set_mode上的文檔)並切換它們。