使用该fill()方法时,我的pygame代码会以某种方式崩溃。
fill()
首先,我发现其他人在这个网站上有一个完全相同的问题,他们可能和我看过相同的pygame教程,但是问题并没有在那里真正解决,这就是为什么我要创建这个重复的问题(不是真的重复,因为其他人提出的原始问题也没有解决)。
我的代码在下面。导致崩溃的代码GameDisplay.fill(black)部分就是这一部分。
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官方网站上,转到下载页面,然后获取Mac的运行时库1.2.15。打开您下载的.dmg文件,您将获得一个SDL.framework文件。在Finder中打开/ Library / Frameworks,然后将框架文件移到那里。(如果它要求替换,我选择了“合并”,但是我确定“替换”也可以使用。)
这为我修复了Pygame。我希望它也对您有用!