Python 除了“time.sleep()”和“pygame.time.wait()”,还有什么选择呢?

Python 除了“time.sleep()”和“pygame.time.wait()”,还有什么选择呢?,python,pygame,pgzero,Python,Pygame,Pgzero,我对python非常陌生。我正在做一个简单的游戏。到目前为止,我试图做的是在显示问题矩形和显示选项之间添加几秒钟的延迟。我该怎么做?我尝试使用time.sleep或pygame.time.wait,但所有这些都显示了一个黑屏,然后同时显示了问题和选项。顺便说一下,我正在使用pygame:)。这是我的密码: 试试看: logname='c:/temp/pgzrun.log' fontname='arial.ttf' 导入错误处理程序 输入数学 faulthandler.enable() 导入时间

我对python非常陌生。我正在做一个简单的游戏。到目前为止,我试图做的是在显示问题矩形和显示选项之间添加几秒钟的延迟。我该怎么做?我尝试使用
time.sleep
pygame.time.wait
,但所有这些都显示了一个黑屏,然后同时显示了问题和选项。顺便说一下,我正在使用pygame:)。这是我的密码:

试试看:
logname='c:/temp/pgzrun.log'
fontname='arial.ttf'
导入错误处理程序
输入数学
faulthandler.enable()
导入时间
导入操作系统、系统、导入库
从时间上导入睡眠
script_dir=getattr(sys,'.'u MEIPASS',os.path.dirname(os.path.abspath(u文件_u)))
os.chdir(脚本目录)
导入pgzrun
导入播放声音
导入pygame
随机输入
从随机导入randint
宽度=1280
高度=720
系统设置递归限制(10000000)
q1=[“SIFS”、“ba”、“bo”、“bi”、“blo”,1]
q2=[“AFST”、“la”、“lo”、“li”、“lloo”,3]
q3=[“jaks”、“fa”、“fo”、“fi”、“asdlo”,2]
q4=[“afsa”、“afsfga”、“DFDFF”、“dfdf”、“safaawr”,2]
问题=[q1、q2、q3、q4]
问题框=Rect(500400140100)
def draw():
索引=0
屏幕填充(“紫色”)
屏幕、绘图、填充(问题框,“蓝色”)
screen.draw.textbox(str(问题[index][0]),问题框)
screen.draw.filled\u rect(回答框[0],“蓝色”)
screen.draw.filled\u rect(回答框[0],“蓝色”)
screen.draw.filled\u rect(回答框[1],“蓝色”)
屏幕、绘图、填充(回答框[2],“蓝色”)
screen.draw.filled\u rect(回答框[3],“蓝色”)
ab1=Rect(0,0,140,100)
ab2=Rect(0,0,140,100)
ab3=Rect(0,0,140,100)
ab4=Rect(0,0,140,100)
ab1.移动ip(40,80)
ab2.移动ip(300,80)
ab3.移动ip(600、80)
ab4.移动ip(900,80)
答案框=[ab1,ab2,ab3,ab4]
随机。随机(问题)
游戏结束=错误
pgzrun.go()
除:
导入回溯
将open(logname'a',encoding='utf-8')作为f:
f、 写入(''.join(traceback.format_exc())+'\n')

编写交互式应用程序时,会有一个事件循环。 在这种情况下,您不应使用
sleep
或类似方法阻止程序 命令

相反,您应该使用计时器来触发事件。在Pygame Zero中,您将使用
clock.schedule
在指定的时间段后触发函数调用

下面是我将如何实现这样一个应用程序:

导入pgzrun
问题=[“一”、“二”]
索引=0
你能回答吗
def show_answers():
全球可以回答吗
你能回答吗
def位于鼠标下方(位置):
全局can_答案,索引
如果你能回答:
你能回答吗
索引=索引+1
时间表(显示答案,1.0)
def draw():
屏幕填充(“黑色”)
screen.draw.textbox(问题[index],Rect(0,0,200,100))
如果你能回答:
屏幕绘制填充矩形(矩形(0,100,200,50),“蓝色”)
时间表(显示答案,1.0)
pgzrun.go()

不,您没有使用,但您正在使用哦,好的:)谢谢您的反馈!您不能在
draw
中设置“Sleep”,因为显示仅在
draw
之后更新一次。场景正在不断重画,这意味着将不断调用
draw
。你必须在不同的框架中展示问题。所以我要做的是让它调用一个做时间的函数。睡眠?不。我告诉过你要使用“睡眠”。您需要一个状态变量或计数器。更改状态或在
draw
中增加计数器。根据状态变量或计数器提问。