【问题标题】:"pygame.error: display Surface quit" while loading加载时“pygame.error:显示 Surface 退出”
【发布时间】:2017-03-01 20:00:08
【问题描述】:

所以我正在制作一个游戏来测试我的编程技能,并且我正在尝试使用 pygame,但是当我尝试加载关卡地图时,它说表面已经退出。我不知道为什么。

这是加载代码:

def load(self):
    print(os.listdir())
    file = input('>>> file name = ')
    try:
        self.Dir = os.getcwd()
        path = os.path.join(self.Dir, "maps", file)
        data = pickle.load(open(path, 'rb'))
    except OSError as error:
        print('Not file ', path)
        print(error)
    else:
        self.grid   = data[0]
        self.blocks = data[1]

提前致谢

编辑: 这是追溯

  Traceback (most recent call last):
  File "F:\PROGRAMS\snow\mapmaker_v2.py", line 169, in <module>
    a.loop()
  File "F:\PROGRAMS\snow\senpy.py", line 95, in loop
    self.blocks.draw(self.screen)
  File "F:\BMDSIT\Portable Python 3.2.5.1\App\lib\site-packages\pygame\sprite.py", line 475, in draw
    self.spritedict[spr] = surface_blit(spr.image, spr.rect)
pygame.error: display Surface quit

编辑 2: 这是它发生的循环代码:

(加载命令在self.keyboard()函数中。)

def loop(self):
    print('looping')
    for event in pygame.event.get():               
        if event.type == pygame.QUIT:
            print('quiting :(')
            pygame.display.quit()
            quit('User quit')

    self.screen.fill((237, 237, 237))

    self.keys = pygame.key.get_pressed()
    self.mos = pygame.mouse.get_pressed()

    self.mouse()
    self.keyboard()

    #screen.blit(player,player.pos)
    self.blocks.draw(self.screen)

    self.extraLoop()

    pygame.display.flip()
    print('done looping')

【问题讨论】:

  • 您能否在您的问题中包含完整的回溯作为编辑?
  • 我怀疑您的错误发生在代码的其他地方。当您在显示器关闭后尝试绘制到屏幕时会出现该错误消息,通常使用 pygame.quit()。请发布您的其余代码。
  • 如果不看更多代码,很难弄清楚。根据这篇帖子stackoverflow.com/questions/1997710/…,这可能发生的原因有多种
  • 问题是我没有调用 pygame.quit() 或任何其他的 quit() 函数,这只会在我运行加载代码后发生

标签: python pygame


【解决方案1】:

您不能腌制Surface 对象。

如果要腌制包含Surface 的对象,请在将其保存到磁盘之前将其删除;并将图像文件的名称或Surface 的字符串表示形式存储在对象中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2021-07-09
    • 1970-01-01
    • 2020-06-02
    • 2019-03-12
    相关资源
    最近更新 更多