Я пишу класс в pygame, чтобы создать объект спрайта, и я бы хотел, чтобы его вращали. Он отлично работает с изображением и вращается без проблем. Но при вращении поверхности с обычным цветом коробка, кажется, растет и сжимается. Я знаю, что это результат изменения размера поверхности, чтобы соответствовать вершинам прямоугольника внутри, но как его остановить? Я бы хотел увидеть визуальную ротацию.Как повернуть поверхность в pygame, не меняя ее формы
Я создал образец кода, чтобы показать проблему, с которой я столкнулся, ее запуск заставляет окно просто изменять размер.
import sys, pygame
from pygame.locals import *
pygame.init()
SCREEN = pygame.display.set_mode((200, 200))
CLOCK = pygame.time.Clock()
surface = pygame.Surface((50 , 50))
surface.fill((0, 0, 0))
rotated_surface = surface
rect = surface.get_rect()
angle = 0
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
SCREEN.fill((255, 255, 255))
angle += 5
rotated_surface = pygame.transform.rotate(surface, angle)
rect = rotated_surface.get_rect(center = (100, 100))
SCREEN.blit(rotated_surface, (rect.x, rect.y))
pygame.display.update()
CLOCK.tick(30)
Как исправить эту проблему, чтобы поверхность вращалась так, как я хочу?
Любая помощь будет оценена!