Drehen Sie Bilder in Pygame

Maxim Maeder 15 Februar 2024
  1. Drehen Sie Bilder in Pygame
  2. Zentriertes Bild drehen in Pygame
Drehen Sie Bilder in Pygame

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

Maxim Maeder avatar Maxim Maeder avatar

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

Verwandter Artikel - Pygame Image