Я выяснил, как вращать изображение вокруг его центральной точки в Pregame, однако это приводит к потере прозрачности фона.
class Agent:
def __init__(self,display_width,display_height):
self.x = random.randint(0,display_width)
self.y = random.randint(0,display_height)
self.angle = random.randint(0,359)
self.sprite_original = pygame.image.load('agent.png').convert()
self.sprite = self.sprite_original
def rot_center(self, image, angle):
"""rotate an image while keeping its center and size"""
orig_rect = image.get_rect()
rot_image = pygame.transform.rotate(image, angle)
rot_rect = orig_rect.copy()
rot_rect.center = rot_image.get_rect().center
rot_image = rot_image.subsurface(rot_rect).copy()
return rot_image
def action(self,keys):
#a rotate left
if keys[97] == True:
self.angle +=1 % 360
self.sprite = self.rot_center(self.sprite_original,self.angle)
#d rotate right
if keys[119] == True:
self.angle -=1 % 360
self.sprite = self.rot_center(self.sprite_original,self.angle)
Я ожидаю, что мое изображение agent.png сохранит свой фонпрозрачность, но это не так.