小编典典

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

python

使用该fill()方法时,我的pygame代码会以某种方式崩溃。

首先,我发现其他人在这个网站上有一个完全相同的问题,他们可能和我看过相同的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()

阅读 225

收藏
2020-12-20

共1个答案

小编典典

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

从SDL官方网站上,转到下载页面,然后获取Mac的运行时库1.2.15。打开您下载的.dmg文件,您将获得一个SDL.framework文件。在Finder中打开/
Library / Frameworks,然后将框架文件移到那里。(如果它要求替换,我选择了“合并”,但是我确定“替换”也可以使用。)

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

2020-12-20