众嗦粥知,有些时候用Python写个游戏,遇到了需要使用cps的地方,没法了,上网搜也很难搜到,所以,出一个方法:
实时计算过去的时间,然后:点击次数 / 过去的时间
用一个多线程计时,然后计算点击速度并四舍五入到小数点后二位。
话不多说,上代码(用tkinter框架写的):
import tkinter as tk
from threading import Thread
import time
import os
z = False
value = 0
timevalue = 0
def C():
global value,z,timevalue
if z == False:
z = True
td = Thread(target=T)
td.start()
button.config(text="Click")
value += 1
def R():
global value,z
button.config(text="Start",state='normal')
value = 0
label.config(text='点击速度测试 v1.0')
z = False
timelabel.config(text='Please Start')
def T():
global timevalue,z
for i in range(100):
if z:
timevalue = i/10
timelabel.config(text='已经过去 '+str(i/10)+' 秒')
try:
label.config(text=str(value)+' 次点击 Cps: '+str(round(value/timevalue,2)))
except:
pass
time.sleep(0.1)
else:
break
else:
button.config(text="Finish",state='disabled')
timelabel.config(text='已经过去 10.0 秒')
label.config(text=str(value)+' 次点击 Cps: '+str(value/10))
root = tk.Tk()
root.geometry('300x100')
root.title('点击速度测试')
root.resizable(0,0)
button = tk.Button(root, text="Start",command=C,width=30,height=2)
button.pack(side=tk.LEFT,anchor=tk.N)
b2 = tk.Button(root, text="Return",command=R,width=10)
b2.pack(side=tk.LEFT,anchor=tk.N)
label = tk.Label(root,text='点击速度测试 v1.0')
label.place(x=5,y=50)
timelabel = tk.Label(root,text='Please Start')
timelabel.place(x=5,y=68)
root.mainloop()
os._exit(0)
如上,便可以实时计算cps(鼠标点击速度)