Как правильно изменить масштаб изображения в PyGame без его обрезки?

Любой набор переменных также может быть завершен в классе. Переменные «Variable» могут быть добавлены к экземпляру класса во время выполнения, напрямую обращаясь к встроенному словарю через атрибут __dict__.

Следующий код определяет класс Variables, который добавляет переменные (в этом случае атрибуты) к своему экземпляру во время построения. Имена переменных берутся из указанного списка (который, например, мог быть сгенерирован программным кодом):

# some list of variable names
L = ['a', 'b', 'c']

class Variables:
    def __init__(self, L):
        for item in L:
            self.__dict__[item] = 100

v = Variables(L)
print(v.a, v.b, v.c)
#will produce 100 100 100
1
задан Rabbid76 28 April 2019 в 08:13
поделиться

1 ответ

Вы должны использовать pygame.transform.smoothscale() вместо pygame.transform.scale() .
Используйте convert() или convert_alpha() для преобразования поверхности в поверхность с правильным форматом пикселя

mainmenu = pygame.image.load("Main_Menu.png")
mainmenu = pygame.transform.smoothscale(mainmenu.convert_alpha(), (1900,600)) 
screen.blit(background, (0, 0))

В то время как scale() выполняет операцию масштабирования , что является максимально быстрым, smoothscale() масштабируется плавно и вычисляет средние значения площади цветов, которые покрывают пиксели.

0
ответ дан Rabbid76 28 April 2019 в 08:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: