我怎么能不使用时间。睡觉()?

2024-09-27 04:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在和乌龟玩俄罗斯方块游戏。在

当街区倒塌时,我用时间。睡觉()让它在倒下之前等几秒钟。但是时间。睡觉()使整个代码停止,我只想停止定义:

def moveDown():
    time.sleep(2)
    turtle(sety(100)
    time.sleep(2)
    turtle.sety(0)
    time.sleep(2)
    turtle.sety(-100)
    time.sleep(2)
    turtle.sety(-200)
    setBlock()

我不希望整个代码停止,因为玩家需要使用左右键在屏幕上导航。那么,我该如何实现呢?抱歉,如果这是非常杂乱和混乱。在


Tags: 代码游戏定义屏幕timedef时间玩家
2条回答

怎么回事时间。睡觉()是所谓的“阻塞调用”,意思是当调用它时,进程在完成之前不会继续。您需要在后台运行另一个线程/进程才能使其移动。 像这样:

def moveDown():
    turtle.sety(turtle.ycor())
    if moveable:
        screen.ontimer(moveDown, 2000) #ms

然后在代码的其他地方:

^{pr2}$

然后用以下方法停止:

...
    moveable=False
...

这是一个非常简单的例子(基于python.org网站示例)

在时间时钟()可以报告自它启动以来的秒数,这样您就可以对照它进行检查,看是否允许用户在某个时间间隔内输入命令,一旦它位于底部

import time
junk = time.clock()
pause_at_bottom = 0.5
## code till it hits the bottom
at_bottom = time.clock()
while time.clock() < (at_bottom + pause_at_bottom):
    ## code to run while at the bottom
## code to run once time has elapsed at bottom

相关问题 更多 >

    热门问题