Pygame で画像を回転する
Maxim Maeder
2023年6月21日
このチュートリアルでは、Pygame で画像を回転する方法を説明します。
Pygame で画像を回転する
transform.rotate
メソッドを使用すると、Pygame で画像とサーフェスを簡単に回転できます。 scale メソッドと同様に、これは新しい Surface を返します。
最初にサーフェスを提供する必要があります。これは回転され、次に回転が度単位で行われます。
# 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))
メイン ループでサーフェスを回転する場合は、古いサーフェスを上書きするのではなく、次のコードのように新しいサーフェスを作成することをお勧めします。
rotation += 1
shown_image = pygame.transform.rotate(image, rotation)
screen.blit(shown_image, (30, 30))
Pygameで画像を中央回転
回転が左上隅を中心に行われていることに気付くでしょうが、中心を中心に回転させたい場合が最も多いでしょう。 以下のコードはまさにそれを行います。
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)
完全なコード:
# 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)
出力:
著者: Maxim Maeder
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