如何在pygame中等待事件的特定时间间隔?

时间:2016-06-26 09:34:14

标签: python pygame

这是一个基本的pygame代码 -

import pygame

screen = pygame.display.set_mode((800,600))

try:
    while True:
        e = pygame.event.wait()
        if e.type == pygame.QUIT:
            raise StopIteration
        if e.type == pygame.MOUSEBUTTONDOWN:

        if e.type == pygame.MOUSEBUTTONUP:

        if e.type == pygame.MOUSEMOTION:


except StopIteration:
    pass

pygame.quit()

我想要做的是当用户离开鼠标按钮并触发MOUSEBUTTONUP事件时,我想在执行MOUSEBUTTONUP块中的命令之前等待一段时间检查是否有任何MOUSEBUTTONDOWN事件。

基本上我想在触发MOUSEBUTTONUP事件后等待2秒钟,如果在此期间没有MOUSEBUTTONDOWN事件,我将继续执行MOUSEBUTTONUP中的命令。但是如果在这2秒内有一个MOUSEBUTTONDOWN事件,我将在MOUSEBUTTONDOWN中执行命令。

欢迎任何有关如何实现此行为的想法。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用sleep()

例如:

import time
time.sleep(5)

Link

答案 1 :(得分:0)

您可以尝试使用time.time()模块的time方法。它返回参考时期的当前时间here

  

time.time()

     

返回自纪元以来的秒数作为浮点数。请注意,即使时间总是作为浮点数返回,但并非所有系统都提供的精度高于1秒。虽然此函数通常返回非递减值,但如果在两次调用之间设置了系统时钟,则它可以返回比先前调用更低的值。

要等待用户指定的时间,以下代码应该可以正常工作:

import time

max_time = int(raw_input('Enter the amount of seconds you want to run this: '))
start_time = time.time()  # remember when we started
while (time.time() - start_time) < max_time:
    do_stuff()