如何制作一个计数器来计算按下鼠标的时间?Pygame

坏蛋

例如,您按下人民币并保持3秒钟,然后放开。因此该函数将返回3。

running = True
timer = 0

while running:
if pygame.mouse.get_pressed(3)[2]:
      timer += 33.3
elif timer:
      print("%.2f" % (timer / 1000))
      timer = 0
for event in pygame.event.get():
     if event.type = pygame.QUIT:
           running = False

pygame.time.Clock().tick(30)

这是一个好习惯吗?

河马

像这样

import pygame
import time

#create window
win = pygame.display.set_mode((500, 500))

#take start time, end time and bool is mouse is pressed
def get_time(start, end, pressed):

    #calculate time
    timer = end - start

    #return timer if it is pressed
    if pressed:
        return timer


#get start time
start = time.time()

while True:
    pygame.event.get()

    #get if RMB is pressed
    pressed = pygame.mouse.get_pressed()[2]

    #calculate current time
    now = time.time()

    #call the function and store the return value in a variable
    timepressed = get_time(start, now, pressed)

    #print the value
    print(timepressed)
    

编辑::我也留下了上面的代码以供参考,但是下面的代码仅在释放鼠标时返回值。它使用pygame.MOUSEBUTTONDOWNpygame.MOUSEBUTTONUP我也把它设为一类,只是为了避免必须全局声明所有内容。

import pygame
import time

#create window
win = pygame.display.set_mode((500, 500))

class Timer:
    def __init__(self):
        #start time
        self.start = time.time()

        #timer is the amount of time passed after mouse is pressed
        self.timer = 0

        #mouse button up
        self.up = False

        #mouse button down
        self.down = False

        #if rmb is held down
        self.rmb = False

        #now 
        self.now = 0


    #update now
    def update(self):
        self.now = time.time()


    def timeRMB(self):
        #if rmb is pressed and pygame mouse button down is true
        if self.rmb:
            if self.down:
                #actual timer
                self.timer = self.now - self.start

        else:
            #if mouse button up is true
            if self.up:
                #reset the timer 
                self.start = self.now
                return self.timer
            
        

#get start time
timer = Timer()

while True:
    events = pygame.event.get()

    #get if RMB is pressed
    timer.rmb = pygame.mouse.get_pressed()[2]


    #get mouse events
    for event in events:
        if event.type == pygame.MOUSEBUTTONDOWN:
            timer.down = True
        if not event.type == pygame.MOUSEBUTTONDOWN:
             timer.down = False
        if event.type == pygame.MOUSEBUTTONUP:
            timer.up = True
        if not event.type == pygame.MOUSEBUTTONUP:
            timer.up = False

    timer.update()

    #call the function and store the return value in a variable
    timepressed = timer.timeRMB()

    print(timepressed)

    
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 Tkinter 制作一个计数器,显示按下按钮的次数

如何制作一个屏幕计数器来阻止功能直到计数器完成

如何制作命令时间计数器

如何为列表中的每个单词制作一个计数器并修复此 porgram?

如何创建一个计数器作为组件多次使用并创建一个按钮来重置 React JS 中的所有计数器?

我如何使用QTime()做一个时间计数器

如何使用React Hooks制作一个取决于两个按钮启动和停止的计数器?

如何制作一个返回鼠标释放后经过的时间的计时器

试图用一个寄存器制作两个计数器

如何增加一个简单的计数器

如何创建一个PHP登录计数器

如何制作一个程序来计算这个方程

如何创建一个倒计时到给定时间和日期的计数器?

在 Google Scripts 中创建一个简单的计数器来跟踪以前的值

我如何创建一个数组并让其运行一个计数器来存储在for循环中创建的值

按日期(每天用户)添加一个计数器到查询中

我们可以制作一个可以用作计算机鼠标的android应用吗

我如何添加一个计数器,该计数器以后将用于if语句以执行重新加载

对于IP地址段长度的循环计数器不计算最后一个段

进度栏动画列表计数器仅计算最后一个aria-valuenow

VBA如何在第3步的循环中使用带有计数器的计数器,每次仅增加一个计数器

寻找一个虚拟的“计数计数器”

在一个cookie中同时包括页面计数器和网页的上次访问时间。

从googlesheets获取日期并在javascript中创建一个计数器来计数过去

如何在pygame中制作一个可以自动移动到鼠标位置的矩形?

如何从另一个angularjs刷新一个控制器的计数器值

如何制作计数器子集?

如何制作基本的FPS计数器?

如何制作未来计数器?