如何计算按键按下所用的时间。(Python)
我想知道如果长时间按住某个键,如何增加一个变量。我正在使用Python和PyGame。 这是我的代码示例(速度、圈数和距离在前几行中定义): 我想知道如何使你按住空格键的时间越长,速度控制越高,最大速度控制为5,最好使用某种经过时间的东西。你可以使用函数返回程序开始计算经过时间后的时间。当用户按键时,将如何计算按键按下所用的时间。(Python),python,pygame,elapsedtime,Python,Pygame,Elapsedtime,我想知道如果长时间按住某个键,如何增加一个变量。我正在使用Python和PyGame。 这是我的代码示例(速度、圈数和距离在前几行中定义): 我想知道如何使你按住空格键的时间越长,速度控制越高,最大速度控制为5,最好使用某种经过时间的东西。你可以使用函数返回程序开始计算经过时间后的时间。当用户按键时,将start\u time设置为事件循环中的当前时间,在while循环中,您可以检查它是否仍处于按下状态,并计算经过的时间 import pygame as pg def main():
start\u time
设置为事件循环中的当前时间,在while循环中,您可以检查它是否仍处于按下状态,并计算经过的时间
import pygame as pg
def main():
screen = pg.display.set_mode((320, 240))
clock = pg.time.Clock()
start_time = 0
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE:
start_time = pg.time.get_ticks()
keys = pg.key.get_pressed()
if keys[pg.K_SPACE]: # The spacebar is held.
current_time = pg.time.get_ticks()
elapsed_time = current_time-start_time # milliseconds
print(elapsed_time)
screen.fill((30, 30, 30))
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
pg.init()
main()
pg.quit()
如果只想计算帧数,请执行以下操作:
import pygame as pg
def main():
screen = pg.display.set_mode((320, 240))
clock = pg.time.Clock()
counter = 0
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE:
counter = 0 # Set it back to 0.
keys = pg.key.get_pressed()
if keys[pg.K_SPACE]: # The spacebar is held.
# Increment the counter every frame.
counter += 1
print(counter)
screen.fill((30, 30, 30))
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
pg.init()
main()
pg.quit()
谢谢你。当我按住空格键测试程序时,我注意到数字跳过了一些,你为什么要这样做?按住空格键越长,你就越想给汽车增加加速度我想你应该发布另一个问题,比如“如何加速一个对象?”。并添加一个简短的目标描述和代码示例,向我们展示您的尝试。我已经得到了答案,您只需发布问题即可。;)您知道vectors和pygame sprites是如何工作的吗?请用@skrx写一条评论,向我发送通知。
import pygame as pg
def main():
screen = pg.display.set_mode((320, 240))
clock = pg.time.Clock()
counter = 0
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE:
counter = 0 # Set it back to 0.
keys = pg.key.get_pressed()
if keys[pg.K_SPACE]: # The spacebar is held.
# Increment the counter every frame.
counter += 1
print(counter)
screen.fill((30, 30, 30))
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
pg.init()
main()
pg.quit()