Pygame で画像を回転する

Maxim Maeder 2023年6月21日
  1. Pygame で画像を回転する
  2. Pygameで画像を中央回転
Pygame で画像を回転する

このチュートリアルでは、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)

出力:

pygame で画像を回転

著者: Maxim Maeder
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

関連記事 - Pygame Image