使用填充(颜色)方法时,pygame崩溃

时间:2016-05-14 01:18:54

标签: 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()

1 个答案:

答案 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对我来说。我希望它也适合你!