Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pygame中显示文本时遇到问题_Python_Pygame - Fatal编程技术网

Python 在pygame中显示文本时遇到问题

Python 在pygame中显示文本时遇到问题,python,pygame,Python,Pygame,总体而言,我是pygame和python中的一名nubie。昨天我开始了一个简单的直升机游戏项目,但我不明白为什么我不能显示一条消息 我试着使用不同的代码格式,也试着在这里和那里移动几行代码,但仍然无法让它工作 def display_gameover(): pygame.font.init() font=pygame.font.SysFont(无,100) text=font.render(“游戏结束”,真,红色) extect=text.get_rect() blit(文本,(屏幕高度//2

总体而言,我是pygame和python中的一名nubie。昨天我开始了一个简单的直升机游戏项目,但我不明白为什么我不能显示一条消息

我试着使用不同的代码格式,也试着在这里和那里移动几行代码,但仍然无法让它工作

def display_gameover():
pygame.font.init()
font=pygame.font.SysFont(无,100)
text=font.render(“游戏结束”,真,红色)
extect=text.get_rect()
blit(文本,(屏幕高度//2,屏幕宽度//2))
pygame.display.update()
时间。睡眠(2)
如果x>屏幕宽度-直升机宽度或x<0或y>屏幕高度-直升机高度或y<0:
显示_gameover()
博弈(循环)

我定义了
display\u gameover
,并如上所示调用它。但是,当我尝试运行代码时,一切正常,除了在2秒钟的等待时间内没有显示任何内容之外。

调用
pygame.display.update()
是不够的,您还必须处理事件(例如通过)。
此外,我建议使用而不是
time.sleep()
。请注意,
pygame.time.wait()
的时间单位是毫秒

def display_gameover():
pygame.font.init()
font=pygame.font.SysFont(无,100)
text=font.render(“游戏结束”,真,红色)
extect=text.get_rect()
blit(文本,(屏幕高度//2,屏幕宽度//2))
pygame.display.update()
pygame.event.pump()
pygame.time.wait(2000)#2000毫秒==2秒
此外,还必须确保与显示关联的曲面已初始化()。 这意味着如果pygame是通过
pygame.quit()
终止的,则必须通过
pygame.init()
重新初始化,并且在调用
display\u gameover()
之前,必须通过
pygame.display.set\u mode()
设置
屏幕

或者,不要终止pygame

我用你提供的代码块更新了我的代码,但它仍然不起作用。我的代码的某些其他部分可能会导致这种情况(我怀疑是这样),但我认为不可能在这里发布我的全部代码。是的,我是。但这里有一行代码:screen=pygame.display.set_mode((screen\u width,screen\u height))它们看起来是这样的:screen\u height=600 screen\u width=1200您是否调用
pygame.quit()
display\u gameover
之前的某个地方?