【问题标题】:"Fatal Python error: (pygame parachute) Segmentation Fault" when changing window更改窗口时出现“致命的 Python 错误:(pygame 降落伞)分段错误”
【发布时间】:2013-12-18 11:53:04
【问题描述】:

我目前正在学习 python 并尝试使用 pygame 库制作一个小游戏。我在 Windows Xp 上使用 python 3.2.3 和 pygame 1.9.2a。一切正常,除了一件事:如果我在游戏运行时进入另一个窗口,它会崩溃并且我在控制台中收到一条错误消息:

Fatal Python error: (pygame parachute) Segmentation Fault

我从程序中取出的这段代码似乎导致了错误,但是我看不出它有什么问题:

import pygame
from pygame.locals import *

pygame.init()

fenetre = pygame.display.set_mode((800, 600))

go = 1

while go:
    for event in pygame.event.get():
        if event.type == QUIT:
            go = 0

感谢您的帮助!

【问题讨论】:

  • 并不是说它对你的问题有帮助,但你可以写while go:,因为False/None/0以外的任何东西都等于true。但我看不出你的代码有什么奇怪的地方。
  • 感谢您的建议!如果这不是太多要求,您或其他任何人是否可以尝试运行此代码以查看它是否在另一台计算机上重现该错误?我会自己做,但我现在没有另一台可用的计算机。
  • 在 windows 7 上没有问题,同样的 python/pygame 构建!

标签: python windows pygame


【解决方案1】:

我知道线程很旧,但是当我连续调整 pygame 窗口的大小几秒钟时,我在 linux 中遇到了相同的错误“致命 Python 错误:(pygame parachute)分段错误”。以防万一这对其他人有帮助,事实证明这是由于我在另一个线程中调用 pygame.display.set_mode(screen_size, 0) 调整窗口大小时在一个线程中对窗口表面进行 blitting 引起的。我通过在绘制窗口或调整窗口大小之前获取锁来修复它。

【讨论】:

    【解决方案2】:

    我不知道你在最后一行之后是否有任何你没有输入的东西,但如果你没有,你应该用你的最后一行替换

    pygame.quit()
    sys.exit()
    

    作为替代方案,您可以将这两行放在while 循环之外并保留您拥有的内容。别忘了import sys

    【讨论】:

      猜你喜欢
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      相关资源
      最近更新 更多