键盘动作之间的定时器

时间:2018-01-25 14:23:33

标签: python pygame

我想在两个动作之间制作一个计时器,例如显示一个图像,然后按键盘上的一个键。我试图通过测量按 space 之间的时间来开始这个。例如,按 space 启动计时器并再次按下它会停止计时器。然后打印时间。

我使用pygame作为按键跟踪器。

这是我的代码,为什么它不起作用?

import time
import pygame
pygame.init()
pygame.event.get()

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if key == pygame.K_SPACE:      
            start = time.time()
            if key == pygame.K_SPACE:
                end = time.time()
                print(end - start)

我认为这可能是我尝试跟踪空格键的方式;并利用了有用的评论,但仍无法使其发挥作用:

import time
import pygame
pygame.init()
key=pygame.key.get_pressed()
start_time = None
if key[pygame.K_SPACE]:

        if start_time == None:
            start_time = time.time()
        else:
            print(time.time() - start_time)
            start_time = None

2 个答案:

答案 0 :(得分:1)

您需要在某处保存第一个事件的状态(或开始时间)。 目前,你的if子句都将评估为True,时间总是为0。

start_time = None
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if key == pygame.K_SPACE:
            if start_time == None:
                start_time = time.time()
            else:
                print(time.time() - start_time)
                start_time = None

答案 1 :(得分:1)

首先,我很确定你需要一个pygame窗口来生成任何事件。接下来,您需要循环,直到您按下 space 。这是一个例子:

Skip