Kollisionen in Pygame erkennen
-
Kollisionen mit
rect.collidepoint()
in Pygame erkennen -
Kollisionen mit
rect.colliderect()
in Pygame erkennen -
Kollisionen erkennen mit
rect.collidelist()
oderrect.collidelistall()
in Pygame -
Kollisionen erkennen mit
rect.collidedict()
oderrect.collidedictall()
in Pygame
Es gibt verschiedene Möglichkeiten, Kollisionen in Pygame zu erkennen, und dieser Artikel wird einige davon behandeln.
Der hier angezeigte Code ist nicht der vollständige Code für ein gültiges Pygame-Fenster. Wenn Sie an einem Bare-Bones-Framework interessiert sind, lesen Sie diesen Artikel.
Kollisionen mit rect.collidepoint()
in Pygame erkennen
Mit der Methode collidepoint()
der Klasse rect
können wir testen, ob sich ein bestimmter Punkt innerhalb des rect
befindet. Dies ist bei vielen Gelegenheiten nützlich, beispielsweise wenn Sie möchten, dass einige UI-Elemente das Aussehen ändern, wenn Sie mit der Maus darüber fahren.
In diesem Artikel haben wir die Funktion besprochen und einen Button damit gemacht. Sie können die Funktion entweder separat mit der Koordinate x
und y
versorgen oder sie iterierbar wie ein Tupel oder eine Liste bereitstellen.
Syntax:
rect.collidepoint(x, y)
rect.collidepoint((x, y))
Kollisionen mit rect.colliderect()
in Pygame erkennen
Mit dieser Funktion der Klasse rect
können wir testen, ob irgendein Teil eines anderen rect
innerhalb seiner Grenzen liegt. Daher müssen wir diese Funktion mit einem weiteren rect
versorgen.
Syntax:
rect.colliderect(rect)
Kollisionen erkennen mit rect.collidelist()
oder rect.collidelistall()
in Pygame
Wir können auch die Methode rect.collidelist()
verwenden, die eine Liste von rects
erhält und testet, ob sich eines mit dem Haupt-rect
schneidet. Diese Funktion gibt den ersten rect
-Index zurück, der mit dem rect
kollidiert.
Die Methode rect.collidelistall()
ist ähnlich und hat nur einen wesentlichen Unterschied: Sie gibt ein Array mit allen Indizes von rects
zurück, die mit dem Haupt- rect
kollidieren.
Syntax:
rect.collidelist([rect1, rect2, ...])
rect.collidelistall([rect1, rect2, ...])
Kollisionen erkennen mit rect.collidedict()
oder rect.collidedictall()
in Pygame
Diese Methoden sind ziemlich identisch mit den obigen Methoden, aber sie geben das Schlüssel-Wert-Paar von rects
zurück, das mit dem Haupt rect
kollidiert.
Syntax:
rect.collidedict({
'rect1': rect1,
'rect2': rect2,
...
})
rect.collidedictall({
'rect1': rect1,
'rect2': rect2,
...
})
Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.
GitHub