Загрузка изображения Pygame не может найти изображение

#python #python-3.x #pygame

#python #python-3.x #pygame

Вопрос:

Это моя первая публикация в Stack Overflow, поэтому, пожалуйста, дайте мне знать, могу ли я сделать что-нибудь лучше, чтобы задать свой вопрос!

Вот учебник, которому я следую, с отметкой о том, где я был. Я использую VSCode Python и Pygame. https://youtu.be/UZg49z76cLw?t=1138

У меня есть файл в указанном каталоге, и я убедился, что он назван правильно, скопировав его.

Всякий раз, когда я запускаю свой код, bg_surface не отображается на моем экране. Раньше он говорил, что его не существует, но я ввел полный адрес файла, и он перестал это делать, но по-прежнему не отображает фактическое изображение. Я также хотел бы отказаться от использования полного пути к файлу, поскольку я не смогу его отправить … import pygame, sys

 pygame.init()#initiating pygame
screen = pygame.display.set_mode((576,1024))#Set canvas size
clock = pygame.time.Clock()

bg_surface = pygame.image.load('C:\Users\{my_name}\MyPythonScripts\Flapp\assets\background-day.png')
bg_surface = pygame.transform.scale2x(bg_surface)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()#Ends the game
            sys.exit()#ends the program
    
    screen.blit(bg_surface,(0,0))#Blit puts a surface on another surface

    pygame.display.update#Update screen
    clock.tick(120)#Set framerate
  

Вещи, которые я пробовал:

 bg_surface = pygame.image.load('C:\Users\{my_name}\MyPythonScripts\Flapp\assets\background-day.png')
bg_surface = pygame.image.load('assets\background-day.png')
bg_surface = pygame.image.load('assets/background-day.png')
bg_surface = pygame.image.load(r'assets/background-day.png')
bg_surface = pygame.image.load(r'assetsbackground-day.png')
bg_surface = pygame.image.load('assetsbackground-day.png')
  

И множество подобных вариаций. Бонусные баллы, если вы можете сказать мне, почему я получаю:

 Exception has occurred: SystemExit
  File "C:UsersCorbinMyPythonScriptsFlappflapp.py", line 14, in <module>
    sys.exit()#ends the program
  

Когда я закрываю программу… Спасибо!

Комментарии:

1. Вы не вызываете pygame.display.update , вы просто ссылаетесь на него. Чтобы вызвать его, вам нужны круглые скобки : pygame.display.update() . И вы получаете SystemExit исключение, потому что вы вызываете sys.exit() .

2. Вы решили мою проблему с фоном! Ты крут!! И я должен быть в порядке с появлением этой ошибки? в руководстве говорится, что это то, что мне нужно туда вставить…

3. Об SystemExit исключении беспокоиться не о чем, это связано с обработкой исключений в вашей IDE.

Ответ №1:

Корбин, ты не поставил скобки в конце pygame.display.update . Скорее это должно быть pygame.display.update() . Именно тогда вы сможете получить фоновое изображение.