当我使用 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/