gpt4 book ai didi

python - 我如何用 Pygame 计算鼠标速度?

转载 作者:行者123 更新时间:2023-12-04 15:02:57 25 4
gpt4 key购买 nike

import pygame
import datetime
with open('textdatei.txt', 'a') as file:

pygame.init()
print("Start: " + str(datetime.datetime.now()), file=file)

screen = pygame.display.set_mode((640, 480))
clock = pygame.time.Clock()
BG_COLOR = pygame.Color('gray12')

done = False
while not done:
# This event loop empties the event queue each frame.
for event in pygame.event.get():
# Quit by pressing the X button of the window.
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.MOUSEBUTTONDOWN:
# MOUSEBUTTONDOWN events have a pos and a button attribute
# which you can use as well. This will be printed once per
# event / mouse click.
print('In the event loop:', event.pos, event.button)
print("Maus wurde geklickt: " + str(datetime.datetime.now()), file=file)


# Instead of the event loop above you could also call pygame.event.pump
# each frame to prevent the window from freezing. Comment it out to check it.
# pygame.event.pump()

click = pygame.mouse.get_pressed()
mousex, mousey = pygame.mouse.get_pos()
print(click, mousex, mousey, file=file)

screen.fill(BG_COLOR)
pygame.display.flip()
clock.tick(60) # Limit the frame rate to 60 FPS.
print("Ende: " + str(datetime.datetime.now()), file=file)

你好,我是 Pygame 的新手,现在,我的程序可以跟踪鼠标坐标并创建点击时间。但我想计算鼠标从一次点击到下一次点击的速度(以每秒像素数为单位)。

提前致谢。

最佳答案

使用pygame.time.get_ticks()返回自 pygame.init() 以来的毫秒数被召唤了。
计算 Euclidean distance在 2 次点击之间除以时间差:

import math
prev_time = 0
prev_pos = (0, 0)
click_count = 0

done = False
while not done:
# This event loop empties the event queue each frame.
for event in pygame.event.get():
# Quit by pressing the X button of the window.
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.MOUSEBUTTONDOWN:

act_time = pygame.time.get_ticks() # milliseconds
act_pos = event.pos

if click_count > 0:
dt = act_time - prev_time
dist = math.hypot(act_pos[0] - prev_pos[0], act_pos[1] - prev_pos[1])

speed = 1000 * dist / dt # pixle / seconds
print(speed, "pixel/second")

prev_time = act_time
prev_pos = act_pos
click_count += 1

# [...]

关于python - 我如何用 Pygame 计算鼠标速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66662219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com