Rotar imágenes en Pygame
Este tutorial te enseña cómo rotar imágenes en Pygame.
Rotar imágenes en Pygame
Rotar imágenes y superficies en Pygame es fácil usando el método transform.rotate
. Al igual que el método de escala, esto devolverá una nueva superficie.
Primero tenemos que proporcionar la superficie, que será rotada y luego la rotación en grados.
# 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))
Si gira una superficie en el ciclo principal, es mejor no sobrescribir la superficie anterior, sino crear una nueva, como en el código a continuación.
rotation += 1
shown_image = pygame.transform.rotate(image, rotation)
screen.blit(shown_image, (30, 30))
Girar imagen centrada en Pygame
Notarás que la rotación está alrededor de la esquina superior izquierda, pero lo más probable es que quieras que gire alrededor de su centro. El siguiente código hace precisamente eso.
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)
Código completo:
# 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)
Producción:
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