クリックするとボタン機能を一度実行させることができません。マウスボタンが押されるたびに、リリースされるまで関数ループが実行されます。クリックごとにループを1回だけ実行したい。ここでは、コードは次のとおりです。それは繰り返しループを実行しているとして、あなたはできるだけ速くすることができますクリックするとボタン機能を一度実行する
def Button(msg, x, y, w, h, ic, ac, action=None):
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
if x+w > mouse[0] > x and y+h > mouse[1] > y:
pygame.draw.rect(window, ac, (x, y, w, h))
#if event.type == pygame.MOUSEBUTTONDOWN:
if click[0] == 1 and action != None:
pygame.draw.rect(window, lightgrey, (x, y, w, h))
if action == "undo":
print("hey")
if action == "reset":
for row in range(6):
for column in range(7):
board[row][column] = 0
elif action == "quit":
pygame.quit()
quit()
else:
pygame.draw.rect(window, ic, (x, y, w, h))
プリント(「ちょっと」)およそ3回を印刷します。
[ワンクリックだけ登録するためにpygameボタンを取得する方法?](http://stackoverflow.com/questions/31300690/how-to-get-pygame-button-to-register -only-one-click) – numbermaniac