2016-05-14 90 views
3

当我使用fill()方法时,pygame代码崩溃了。使用填充(颜色)方法时,pygame崩溃

首先我发现这个网站上有an exact same question由其他人可能看过像我一样的pygame教程,但问题实际上并没有解决那里,这就是为什么我创建这个重复的问题(不是真的是重复的,因为别人问的原始问题也没有解决)。

我的代码在下面。造成崩溃的代码部分是GameDisplay.fill(black)部分。

我知道这一点,因为当我删除该行时,一切正常。我的pygame版本与我拥有的(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

您可以发布您遇到的异常或错误消息吗? –

+0

错误弹出窗口中有很多单词我不知道这是否是你想要的:例外类型:EXC_BAD_ACCESS(SIGSEGV) 例外代码:KERN_INVALID_ADDRESS在0x0000000000000000 例外注意:EXC_CORPSE_NOTIFY – pythonsohard

+2

问题似乎是关于系统。特别是iOS。当谷歌搜索时,弹出的问题是关于苹果产品。 – Rockybilly

回答

4

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

从SDL官方网站上,转到the download page并获取适用于Mac的运行时库1.2.15。打开你下载的.dmg文件,你会得到一个SDL.framework文件。在Finder中打开/库/框架并在那里移动框架文件。 (如果它要求替换,我选择合并,但我确定替换也应该工作。)

这个固定Pygame对我来说。我希望它也适用于你!

+1

哇这完美的作品! – pythonsohard

+1

你是地球上最聪明的人! 我阅读了数百篇文章,没有解决我的问题,并且您使用了最简单的解决方案。我欠你几个月的工作,认真的! – DaniPaniz

+0

哈哈,没问题! :) – numbermaniac