Как повернуть Rect в pygame?

Для поворота прямоугольника (Rect) в pygame, вам нужно использовать метод rotate() от объекта Surface, на котором отображается прямоугольник. Прежде всего, создайте повернутую версию Surface, а затем используйте эту повернутую Surface для обновления прямоугольника.

Вот пример кода, демонстрирующий, как повернуть прямоугольник в pygame:

import pygame
import sys

pygame.init()

width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Rotate Rect in pygame')

WHITE = (255, 255, 255)
RED = (255, 0, 0)

rect_width, rect_height = 100, 50
rect = pygame.Rect((width // 2 - rect_width // 2, height // 2 - rect_height // 2, rect_width, rect_height))
angle = 0

def rotate_rect(surface, rect, angle):
    rotated_surface = pygame.transform.rotate(surface, angle)
    rotated_rect = rotated_surface.get_rect(center=rect.center)
    return rotated_surface, rotated_rect

while True:
    screen.fill(WHITE)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    rotated_surface, rotated_rect = rotate_rect(pygame.Surface((rect.width, rect.height)), rect, angle)
    angle += 1

    screen.blit(rotated_surface, rotated_rect.topleft)
    pygame.display.flip()

Этот код создает окно pygame, в котором отображается прямоугольник, который вращается вокруг своего центра. Функция rotate_rect принимает повернутую версию прямоугольника, угол поворота и исходный прямоугольник, а затем возвращает повернутую поверхность и прямоугольник. В основном цикле программы прямоугольник увеличивает свой угол поворота на каждой итерации и отображается на экране.

Надеюсь, это поможет вам понять, как повернуть прямоугольник в pygame. Если у вас есть дополнительные вопросы, не стесняйтесь задавать!