宏程序无法正常工作

时间:2018-06-08 02:39:38

标签: python python-3.x macros pygame keypress

我一直在寻找一种制作自动转换器的方法,因为我没有任何通过宏点击/输入Python的经验。我希望程序能够检测到何时按下按钮(F1)并开始不断点击直到我按下停止按钮(F2);遗憾的是,我的代码不会输出cps变量以及xy变量。我只需要能够检测到它正在那里继续我的实际点击。

基本上,我在问如何修复密钥检测。 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)

2 个答案:

答案 0 :(得分:1)

您的代码目前会检查12个数字键。

功能键需要K_F1K_F2,而不是K_1K_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()