我一直在寻找一种制作自动转换器的方法,因为我没有任何通过宏点击/输入Python的经验。我希望程序能够检测到何时按下按钮(F1)并开始不断点击直到我按下停止按钮(F2);遗憾的是,我的代码不会输出cps
变量以及x
和y
变量。我只需要能够检测到它正在那里继续我的实际点击。
基本上,我在问如何修复密钥检测。 Python版本:3.6.5
编辑:我知道它检查1和2,f1在按下时打开了一个python帮助屏幕 - 所以现在我只做1和2import 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)
答案 0 :(得分:1)
您的代码目前会检查1
和2
个数字键。
功能键需要K_F1
和K_F2
,而不是K_1
和K_2
。
答案 1 :(得分:1)
定义用户事件并使用此事件作为第一个参数调用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()