ich möchte unter pygame einen Spielstein verschieben.
Linke Maustaste wird gedrückt: Spielstein wird angehoben
Linke Maustaste ist gedrückt: Spielstein wird mit der Maus verschoben
Linke Maustaste wird losgelassen: Spielstein wird abgesetzt
Bei meiner ersten Lösung habe ich einfach drauflos geschrieben und gespeichert, ob die Maustaste gedrückt ist oder nicht. So konnte ich vergleichen, ob sie gerade gedrückt wurde. Der Code war in etwa so:
Code: Alles auswählen
left_click, _, _ = pygame.mouse.get_pressed()
if left_click and not old_left_click:
pass # Spielstein anheben
elif left_click:
pass # Spielstein verschieben
elif not left_click and old_left_click:
pass # Spielstein ablegen
old_left_click = left_click
Code: Alles auswählen
LEFT_MOUSEBUTTON = 1
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == LEFT_MOUSEBUTTON:
pass # Spielstein anheben
if event.type == pygame.MOUSEBUTTONUP:
if event.button == LEFT_MOUSEBUTTON:
pass # Spielstein ablegen
Oder führe ich eine neue Variable "lifted" ein, die beim Drücken auf True und beim Loslassen auf False gesetzt wird? Also in etwa so:
Code: Alles auswählen
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == LEFT_MOUSEBUTTON:
lifted = True
# Hebe Spielstein an
if lifted:
# verschiebe Spielstein
Schon einmal vielen Dank!