【问题标题】:Pygame display causing segmentation fault 11Pygame显示导致分段错误11
【发布时间】:2017-06-05 01:28:42
【问题描述】:

我在 OS X 10.11.1 上使用 python 2.7.10 和 pygame 1.9.1

每当我在 pygame 表面上绘制或填充任何东西时,我都会收到 Segmentation fault: 11 和 python 崩溃(至少我认为这是原因)。我曾经为学校做过几个 pygame 项目,这些项目过去曾在同一台机器上工作过,但现在只是崩溃了。我不记得从那以后更改 python 或 pygame 版本,只更新 OS X 版本。

这是一个简单的小程序,应该只在紫色背景上显示一个红色矩形:

import pygame
import pygame.locals

class ExampleClass:
    def __init__(self):
        self.screen = pygame.display.set_mode(
                        (100, 100),
                        pygame.locals.DOUBLEBUF |
                        pygame.locals.SRCALPHA)


    def paint(self, surface):
        surface.fill((100, 50, 255))        # blue-purple-y background
        pygame.draw.rect(surface, (255, 50, 100), (10, 10, 50, 25))     # red rectangle

    def main_loop(self):
        clock = pygame.time.Clock()

        while True:
            clock.tick(30)

            for e in pygame.event.get():
                if e.type == pygame.QUIT:
                    pygame.quit()
                    return
                if e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE:
                    pygame.quit()
                    return

                self.paint(self.screen)

                pygame.display.flip()

example = ExampleClass()
example.main_loop()

我在 Windows 机器上试过这个,它工作得很好,但是它在我的 mac 上崩溃了。如果您注释掉self.paint(self.screen),则会弹出窗口并且没有崩溃。我搜索了一下,没有找到太多。我不知道是什么原因导致它这样做,任何帮助将不胜感激。

【问题讨论】:

  • 我认为您需要在开头致电pygame.init()
  • @DJMcMayhem 我刚试过,它似乎没有做任何事情。在我之前的任何项目中,我从未有过这种情况,它们都在同一时间起作用。同样的代码在 Windows 上也可以正常工作,所以我认为这不是问题......

标签: python python-2.7 pygame


【解决方案1】:

我知道这是旧的,但这是内置 SDL 库中的错误。

official site 下载适用于 Mac 的 SDL-1.2.15 库

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 2013-11-20
    • 2021-08-23
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多