Python PyGame:MOUSEBUTTONDOWN事件的问题

Python PyGame:MOUSEBUTTONDOWN事件的问题,python,pygame,Python,Pygame,我想在PyGame中建立一个国际象棋游戏。我的代码是这样的: while running: pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() elif event.type == pygame.MOUSEBUTTONDOWN:

我想在PyGame中建立一个国际象棋游戏。我的代码是这样的:

while running:
    pygame.display.update()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

        elif event.type == pygame.MOUSEBUTTONDOWN:
            if event.button == 1:
                select_piece(event.pos)
                        
        
        if event.type == pygame.MOUSEBUTTONDOWN:
            if event.button == 1:
                # Will move the piece if it is selected:
                if piece_currently_selected and event.pos == selected_piece_coordinates:
                    selected_piece_name = moves[selected_piece]
                    
                    Position.move_piece(selected_piece_name, 'd4') 
                    piece_currently_selected = False # The piece has been moved, so we change this to False again.
我想做的是:第一个MOUSEDOWNEVENT将选择一个用户单击的片段。如果用户没有单击该工件,它将返回None。第二个MOUSEDOWNEVENT将实际将所选片段移动到用户单击的新地址

问题是,这两个事件几乎同时运行。第一个MOUSEDOWNEVENT选择工件后,第二个MOUSEDOWNEVENT运行并立即移动它,然后用户才有机会单击新的正方形并将其移动到那里

所以我需要这样做,用户首先点击选择一个工件,然后点击另一个位置将该工件移动到那里。我该怎么做?谢谢大家! 您不能实现“第一个”和“第二个”鼠标按钮按下事件。事件不知道它是第一个还是第二个。您必须执行1
MOUSEBUTTONDOWN
事件,并区分当前是否选择了一个工件:

运行时:
pygame.display.update()
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出()
elif event.type==pygame.MOUSEBUTTONDOWN:
如果event.button==1:
如果当前未选择工件:
#未选择图片->选择一张图片
选择零件(事件位置)
其他:
#选择一个工件->移动工件
# [...]
#当工件成功移动时,取消选择工件
当前所选工件=假

非常感谢您!您的解决方案非常有效!:)