Wie berechne ich die Rotation eines Objektes in Pygame?

2 Antworten

Um die Gradanzahl zu berechnen, um von Objekt A zu Objekt B zu drehen, kannst du die trigonometrischen Funktionen verwenden, insbesondere die Arkustangensfunktion (auch bekannt als

math.atan2()

in Python), um den Winkel zwischen den beiden Objekten zu berechnen.

Hier ein Beispielcode:

objekt_a = pygame.image.load("objekt_a.png")
objekt_b = pygame.image.load("objekt_b.png")

# Bestimme die Positionen von Objekt A und Objekt B
a_position = (100, 100)
b_position = (500, 300)

# Berechne den Vektor von Objekt A zu Objekt B
dx = b_position[0] - a_position[0]
dy = b_position[1] - a_position[1]

# Berechne den Winkel zwischen den beiden Objekten in Grad
angle = math.degrees(math.atan2(-dy, dx))

# Rotiere Objekt A um den berechneten Winkel
objekt_a_rotated = pygame.transform.rotate(objekt_a, angle)

Hoffe es hilft.

Wenn du die Position beider Objekte im Raum kennst, kannst du die Position b von a abziehen, und bekommst so den Vektor, welcher von a nach b zeigt. So kannst du mit



Den Winkel in Radianten berechnen und durch



in Grad umwandeln.