Python 为什么我的pygame显示在几秒钟后没有响应?

Python 为什么我的pygame显示在几秒钟后没有响应?,python,automation,pygame,Python,Automation,Pygame,我只是想澄清一下,我完全不知道我在做什么,事实上我真的不知道我是如何走到这一步的。我写了一些代码来充当Minecraft农场的自动点击器(是的,我知道你可以使用更简单的方法)。我从各种教程中挑选了一些片段,并自己做了一些。有点乱。但是,一旦代码运行并第一次单击,pygame窗口将显示没有响应。我不知道为什么。我将感谢任何建议和提示,如果我能打赌这个问题已经解决,那将是非常棒的,谢谢 我认为我不知道如何很好地使用它,导致一些代码混乱:( 当Clicker变为True时,它会阻止事件队列处理。因此,

我只是想澄清一下,我完全不知道我在做什么,事实上我真的不知道我是如何走到这一步的。我写了一些代码来充当Minecraft农场的自动点击器(是的,我知道你可以使用更简单的方法)。我从各种教程中挑选了一些片段,并自己做了一些。有点乱。但是,一旦代码运行并第一次单击,pygame窗口将显示没有响应。我不知道为什么。我将感谢任何建议和提示,如果我能打赌这个问题已经解决,那将是非常棒的,谢谢

我认为我不知道如何很好地使用它,导致一些代码混乱:(


Clicker
变为True时,它会阻止事件队列处理。因此,一旦Clicker开始循环,就不会处理任何用户输入,因为此循环不会重新检查队列中的新事件,而是继续重新处理相同(旧)事件结果

您可能需要将
while Clicker
cause中的事件处理合并到主事件循环中。可能需要在这些事件上使用
if Clicker

pygame.event.set_blocked(pygame.MOUSEMOTION)
pygame.event.set_blocked(pygame.MOUSEBUTTONDOWN)
pygame.event.set_blocked(pygame.MOUSEBUTTONUP)

while running:
    # handle events and user interaction
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN :    # some key was pushed
            if event.key == pygame.K_p:
                print('started')
                Clicker = True               # start the clicker
            elif event.key == pygame.K_x:
                print('stopped')
                Clicker = False              # stop the clicker
            elif event.key == pygame.K_z:
                running = False              # Allow exit here too  


    # Update the screen
    if Clicker:
        # Click mode
        display_surface.fill(white)
        display_surface.blit(Run_Text, Run_Text_pos)
    else:
        # NOT in Click Mode
        display_surface.fill(white)
        display_surface.blit(Start_Text, Continue_pos)
        display_surface.blit(Pause_Text, Pause_Text_pos)

    Img(x, y)
    pygame.display.update()

与此相近。没有注释,无法立即明确代码的意图,因此很难创建精确的解决方案。

谢谢!非常感谢您的帮助。我将确保在将来添加更多注释:D
pygame.event.set_blocked(pygame.MOUSEMOTION)
pygame.event.set_blocked(pygame.MOUSEBUTTONDOWN)
pygame.event.set_blocked(pygame.MOUSEBUTTONUP)

while running:
    # handle events and user interaction
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN :    # some key was pushed
            if event.key == pygame.K_p:
                print('started')
                Clicker = True               # start the clicker
            elif event.key == pygame.K_x:
                print('stopped')
                Clicker = False              # stop the clicker
            elif event.key == pygame.K_z:
                running = False              # Allow exit here too  


    # Update the screen
    if Clicker:
        # Click mode
        display_surface.fill(white)
        display_surface.blit(Run_Text, Run_Text_pos)
    else:
        # NOT in Click Mode
        display_surface.fill(white)
        display_surface.blit(Start_Text, Continue_pos)
        display_surface.blit(Pause_Text, Pause_Text_pos)

    Img(x, y)
    pygame.display.update()