首页 文章

pygame只在屏幕上显示灰色窗口

提问于
浏览
1

我一直在尝试使用pygame来展示一个游戏场景,但它似乎已停止为我工作了:它只显示我创建的任何屏幕上的灰色框,直到pygame关闭,然后屏幕上的内容应该短暂闪烁在它退出之前 . 例如,下面的最小代码显示灰色屏幕5秒钟,然后快速闪烁黑色并退出:

import pygame as pg
import time
pg.init()
sc = pg.display.set_mode((600,600))
sc.fill((0,0,0))
pg.display.flip()
time.sleep(5)

这似乎是屏幕显示的一个问题,而不是pygame本身,因为我可以使用pg.image.save()创建表面并将它们保存到图像文件,它们在那里看起来很好 .

自从我升级到OSX 10.12以来,这是我第一次尝试使用pygame在屏幕上显示 . 这是使用Python 2.7和pygame 1.9.3(从pip下载,但也是bitbucket的dev 1.9.4版本的问题) . 所有sdl依赖项都是最新版本(根据自制程序) .

但是,我现在因为如何进行更多故障排除而迷失方向,因为我对pygame如何与显示器进行通信的内容知之甚少 . 还有什么我可以做的来帮助找到这个问题的根源并纠正它吗?

谢谢!

1 回答

  • 2

    您需要一个不断执行以下操作的游戏循环:

    • 调用pygame.display.flip() - 这将更新屏幕并进行新的更改

    • 调用pygame.event.get() - 这是最重要的,否则,事件队列将不会被刷新,操作系统将假定您的程序没有响应 . 你不能在PyGame中拥有像 sleep(5) 这样的东西 .

相关问题