HOWTO · Pygame

Drehen Sie Bilder in Pygame

In diesem kurzen Tutorial wird erläutert, wie Sie Bilder in Pygame drehen.

Auf dieser Seite

In diesem Tutorial erfahren Sie, wie Sie Bilder in Pygame drehen.

Drehen Sie Bilder in Pygame

Das Drehen von Bildern und Oberflächen in Pygame ist mit der Methode transform.rotate einfach. Wie die Skalierungsmethode gibt dies eine neue Oberfläche zurück.

Wir müssen zuerst die Oberfläche angeben, die gedreht werden soll, und dann die Drehung in Grad.

# Before the main loop
image = pygame.image.load("image.png")
image = pygame.transform.rotate(image, 45)

# in the main loop
screen.blit(image, (30, 30))

Wenn Sie eine Fläche in der Hauptschleife drehen, ist es am besten, die alte Fläche nicht zu überschreiben, sondern stattdessen eine neue zu erstellen, wie im folgenden Code.

rotation += 1
shown_image = pygame.transform.rotate(image, rotation)

screen.blit(shown_image, (30, 30))

Zentriertes Bild drehen in Pygame

Sie werden feststellen, dass die Drehung um die obere linke Ecke erfolgt, aber Sie möchten höchstwahrscheinlich, dass sie sich um ihren Mittelpunkt dreht. Der folgende Code tut genau das.

rotated_image = pygame.transform.rotate(image, 45)
new_rect = rotated_image.get_rect(center=image.get_rect(center=(300, 300)).center)

screen.blit(rotated_image, new_rect)

Vollständiger Code:

# Imports
import sys
import pygame

# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))

image = pygame.image.load("image.png")
rotation = 0

# Game loop.
while True:
    screen.fill((20, 20, 20))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    rotated_image = pygame.transform.rotate(image, 90)

    new_rect = rotated_image.get_rect(center=image.get_rect(center=(300, 300)).center)

    screen.blit(rotated_image, new_rect)
    pygame.display.flip()
    fpsClock.tick(fps)

Ausgang:

Bilder in Pygame drehen