Для поворота прямоугольника (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
. Если у вас есть дополнительные вопросы, не стесняйтесь задавать!