当我使用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()
答案 0 :(得分:4)
我在Macbook Air上遇到了完全相同的问题。 Pygame可以创建一个屏幕,但每当它试图触摸它时,它都会因Segmentation错误而崩溃(这是你在错误中看到的SIGSEGV)。这是因为Pygame依赖于SDL框架,而Mac上的内置版本并不完美。
从官方SDL网站,转到the download page并获取适用于Mac的运行时库1.2.15。打开您下载的.dmg,您将获得一个SDL.framework文件。在Finder中打开/ Library / Frameworks并在那里移动框架文件。 (如果要求替换,我选择了合并,但我确定替换也应该有用。)
这个固定的Pygame对我来说。我希望它也适合你!