我一直在寻找一种制作自动点击器的方法,因为我没有任何通过宏在 Python 中点击/输入的经验。我希望程序能够检测到我按下按钮 (F1) 并开始不断单击,直到按下停止按钮 (F2);不幸的是,我的代码不会输出 cps 变量以及 x 和 y 变量。我只需要能够检测到它在那里工作即可继续我的实际点击。
基本上,我问的是如何修复按键检测。 Python版本:3.6.5
编辑:我知道它会检查 1 和 2,按下 f1 时会打开一个 python 帮助屏幕 - 所以现在我只做 1 和 2
import random, pygame, pyautogui, time
loop = 1
on = 0
pygame.init()
while(loop == 1):
key = pygame.key.get_pressed()
if(key[pygame.K_1]):
on = 1
elif(key [pygame.K_2]):
on = 0
if(on == 1):
x,y = pygame.mouse.get_pos()
cps = random.randint(10,20)
print(cps, x,y)
最佳答案
定义用户事件并调用pygame.time.set_timer
将此事件作为第一个参数,pygame 将在指定的时间间隔后开始将事件添加到队列中。
import random
import pygame as pg
pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')
CLICK_EVENT = pg.USEREVENT + 1
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_1:
pg.time.set_timer(CLICK_EVENT, 1000) # Start the timer.
elif event.key == pg.K_2:
pg.time.set_timer(CLICK_EVENT, 0) # Stop the timer.
elif event.type == CLICK_EVENT:
print(random.randint(10, 20), pg.mouse.get_pos())
screen.fill(BG_COLOR)
pg.display.flip()
clock.tick(30)
pg.quit()
关于python - 宏程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50752579/