python - 使用 fill(color) 方法时 pygame 崩溃

标签 python macos python-2.7 pygame

当我使用 fill() 方法时,我的 pygame 代码不知何故崩溃了。

首先我发现有 an exact same question在这个网站上,其他人可能和我看了同样的 pygame 教程,但问题实际上并没有在那里解决,这就是为什么我要创建这个重复的问题(不是真正的重复,因为其他人提出的原始问题也没有解决)。

我的代码在下面。导致崩溃的代码部分是 GameDisplay.fill(black) 部分。

我知道这一点,因为当我删除该行时一切正常。我的 pygame 版本与我的 python (2.7) 相同,都是 32 位的。我使用的设备是 macbook air。

我已经尝试重新安装我的 python 和 pygame,但代码仍然会崩溃。我只有一台 macbook,不能像另一个问同样问题的人那样在 Windows 计算机上执行此操作,所以我想知道是否有办法使这项工作正常进行?帮助将不胜感激!

import pygame

white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)

pygame.init()
GameDisplay = pygame.display.set_mode((800, 600))
pygame.display.set_caption("rooms")

GameExit = False
while not GameExit:
    for event in pygame.event.get():
        print event
        if event.type == pygame.QUIT:
            GameExit = True

    GameDisplay.fill(black)
    pygame.display.update()

pygame.quit()
quit()

最佳答案

我在我的 Macbook Air 上遇到了完全相同的问题。 Pygame 可以创建一个屏幕,但每当它尝试触摸它时,它都会因段错误而崩溃(这是您在错误中看到的 SIGSEGV)。这是因为 Pygame 依赖于 SDL 框架,而 Mac 上内置的框架……并不完美。

从 SDL 官方网站转至 the download page并获取适用于 Mac 的运行时库 1.2.15。打开您下载的 .dmg,您将获得一个 SDL.framework 文件。在 Finder 中打开/Library/Frameworks 并将框架文件移动到那里。 (如果它要求替换,我选择了合并,但我确信替换也应该有效。)

这为我修复了 Pygame。我希望它也对你有用!

关于python - 使用 fill(color) 方法时 pygame 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37221463/

相关文章:

python - 在 Mac OS (10.12.1) 上安装 TensorFlow 的问题

python - try/except 不捕获特定类型的异常

python - Django 大变量存储

javascript - 如何在 Django 中使用 JavaScript?

python - 如何在 Python 中使用 Ctrl+C 中止从队列中拉取项目的线程

python - 如何从 Mac OS X 10.14.5 中删除 python 2.7?

ios - 在 Mac 上通过 USB 访问 iOS 设备

python - 在 Pandas 中查找数字列名称

python - 在numpy中绘制随机元素

android - Android SDK for Cordova 7.0.1 安装有哪些要求