Модуль pygame.draw
содержит только функции для рисования простых форм. Если это не то, что вы хотите, вам нужно использовать другой модуль.
pygame.image.load
- это функция, которая загружает изображение с вашего жесткого диска в основную память. Вы можете думать об этом как о загрузке изображения с вашего компьютера в вашу программу. Таким образом, он не делает ничего, кроме предоставления доступа к изображению.
Чтобы иметь возможность рисовать изображение, вы должны явно указать pygame для этого. Вы делаете это, вызывая метод blit
на объекте Surface, в вашем случае на экране.
Итак, сначала загрузите изображение в начале вашей программы. Вы не должны вызывать эту функцию каждый игровой цикл, потому что это дорого. Назовите это только один раз.
my_image = pygame.image.load('path/to/my_image.jpg').convert()
Метод convert
- это просто способ сделать изображение более эффективным в вашей программе. Он преобразует изображение в нужный цветовой формат. Вы не увидите разницы, если исключите ее, но при этом вы получите больше производительности.
Вам нужно перетащить («нарисовать») его на экран. В вашем случае вы бы сделали что-то вроде этого:
def draw(self):
self.app.screen.blit(my_image, (x, y))
где x и y - это положение, в котором вы хотите, чтобы изображение было, или, точнее, где вы хотите, чтобы был расположен верхний левый угол. В настоящее время x и y не определены, поэтому вы должны определить их самостоятельно. Либо сделайте их глобальными, либо поместите в свой класс и получите к ним доступ с помощью self.x
и self.y
.
Кроме того, изображение может быть не того размера, который вам нужен. Чтобы исправить это, вы можете изменить его размер сразу после загрузки, например:
width = 50 # Or whatever size you want it to be.
height = 50
my_image = pygame.image.load('path/to/my_image.jpg').convert()
my_image = pygame.transform.scale(my_image, (width, height))
person
Ted Klein Bergman
schedule
07.07.2020