首页 > 解决方案 > 我试图在 if 语句发生后让图像保持更长时间

问题描述

我正在尝试编辑我的游戏,以便在出现 if 语句时出现图像,但 if 语句仅在对象撞到墙壁并且球反弹时才会出现,因此图像仅在 if 语句出现的时间内出现积极的。我试图发出延迟命令,但在 if 语句发生后,它会在给定时间内冻结整个游戏。

有谁知道如何隔离延迟命令或使图像在 if 语句到期后/球撞到墙上并反弹后多保持一秒钟?

以下是与此有关的代码行:

image_set = pygame.display.set_mode()
image = pygame.image.load("image.png")

def image():
image_set.blit(image,(600,90))

if object.left == (COLLISION_RANGE) or object.right == (WINDOWWIDTH COLLISION_RANGE):
        DisplayOoface()
        Oof.play()

标签: python-3.x

解决方案


将用于“隐藏”图像的代码放入一个单独的函数中,使用 Threading 包创建一个新线程并将该函数传入以执行。

在函数中,您可以在代码的开头添加延迟。当您在 if 语句中启动附加线程时,您将获得所需的延迟,然后该函数可以隐藏图像。

如果你不线程化这个任务,那么 python 一次只处理一行代码。通过将等待和隐藏图像的任务传递给辅助线程,您的主线程(游戏)可以根据需要继续运行。

https://docs.python.org/3/library/threading.html


推荐阅读