Вращение PyGame - прямоугольник непрозрачный? - PullRequest
0 голосов
/ 18 мая 2019

Я выяснил, как вращать изображение вокруг его центральной точки в 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 сохранит свой фонпрозрачность, но это не так.

...