我不确定这是我的代码,IDLE或模块的问题,但是当我运行这个程序时,它有时会在启动时崩溃。它通常每三到四次发生一次。我很困惑,因为它并不总是发生,如果我在while循环内外创建和blit文本表面,它似乎没有什么区别。当它崩溃时,pygame窗口会打开,但仍然是黑色,然后所有IDLE窗口关闭,没有任何错误消息。
以下是代码:
import random, pygame, sys
from pygame.locals import*
pygame.init()
FPS = 30 #frames per second setting
fpsClock = pygame.time.Clock()
#variables
DISPLAYWIDTH = 800
DISPLAYHEIGHT = 500
WHITE = (255,255,255)
BLACK = (0,0,0)
#set up the window
DISPLAYSURF = pygame.display.set_mode((DISPLAYWIDTH, DISPLAYHEIGHT), 0, 32)
pygame.display.set_caption("Hello World!")
DISPLAYSURF.fill(WHITE)
# initialize font
myfont = pygame.font.SysFont("monospace", 100)
# render text
label = myfont.render("Hello World!", True, BLACK)
DISPLAYSURF.blit(label, (100, 100))
while True: #the main game loop
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
fpsClock.tick(FPS)
我认为问题必须在初始化字体行中,因为我已经尝试注释掉渲染文本行,但问题仍然存在。当我注释掉处理文本的所有三行时,程序永远不会崩溃。关于为什么这条线似乎随机导致程序崩溃的任何想法?提前谢谢!
编辑:我正在运行Ubuntu 12.04,Python 3.2和Pygame 1.9。我不确定如何直接从控制台运行程序而不涉及IDLE,但是我已经在Geany中运行了几次,到目前为止它还没有崩溃。