2016-05-14 87 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