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