당신은 변수를 사용할 수 있습니다 previous_button
및 current_button
는 마지막 두 버튼을 remeber 수 있습니다. 그리고 그들이 맞는지 확인할 수 있습니다.
@jsbueno 솔루션과 비슷하지만 목록이 아닌 두 개의 변수를 사용합니다. 더 긴 조합을 확인하려면 list를 사용할 수 있습니다.
import pygame
# --- functions ---
def check_which_button_was_click(buttons, pos):
for name, (rect, color) in buttons.items():
if rect.collidepoint(pos):
return name
# --- main ---
# - init -
screen = pygame.display.set_mode((350, 150))
# - objects -
buttons = {
'RED': (pygame.Rect(50, 50, 50, 50), (255, 0, 0)),
'GREEN': (pygame.Rect(150, 50, 50, 50), (0, 255, 0)),
'BLUE': (pygame.Rect(250, 50, 50, 50), (0, 0, 255)),
}
previous_button = None
current_button = None
# - mainloop -
clock = pygame.time.Clock()
running = True
while running:
# - event -
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
clicked_button = check_which_button_was_click(buttons, event.pos)
if clicked_button is not None:
previous_button = current_button
current_button = clicked_button
print(previous_button, current_button)
# - updates -
if previous_button == 'RED' and current_button == 'BLUE':
print('correct buttons clicked: RED & BLUE')
previous_button = None
current_button = None
# - draws -
screen.fill((0,0,0))
for rect, color in buttons.values():
pygame.draw.rect(screen, color, rect)
pygame.display.flip()
# - FPS -
clock.tick(5)
# - end -
pygame.quit()
예 (내가하는 말만 이해하면) 할 수 있습니다. 너 뭐하려고 했니? 어떤 오류가 있었습니까? – furas
BTW : 이벤트 'MOUSEBUTTONDOWN'이 있다면'event.pos'에서 마우스 위치를 얻을 수 있습니다 – furas
마우스 버튼을 한 번만 마우스로 만들 수 있습니다. 이게 어떻게 가능합니까? –