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:
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