Pygame-Mausklickerkennung
In Pygame erfordert die Erkennung von Mausklicks auf Sprites eine manuelle Überprüfung während der Hauptschleife. So können Sie diese Funktionalität implementieren:
Hauptschleifenansatz:
Beispiel Code:
while ...: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)] # Perform action on clicked sprites
Hinweis: Pygame bietet für dieses Szenario keine ereignisgesteuerte Programmierung.
Alternativer Ansatz:
Obwohl dies nicht optimal ist, können Sie auch die Position des Mauszeigers und den Status gedrückter Tasten überprüfen. Dieser Ansatz erfordert jedoch eine zusätzliche Flag-Verarbeitung, um ein kontinuierliches Drucken zu verhindern:
handled = False while ...: if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()) and not handled: print("You have opened a chest!") handled = pygame.mouse.get_pressed()[0]
Sprite-Klassenmethode:
Sie können auch eine Methode innerhalb einer benutzerdefinierten MySprite-Klasse definieren, um Auf Mausklicks prüfen:
class MySprite(Sprite): def is_clicked(self): return pygame.mouse.get_pressed()[0] and self.rect.collidepoint(pygame.mouse.get_pos())
Das obige ist der detaillierte Inhalt vonWie erkennt man Mausklicks auf Sprites in Pygame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!