Почему я получаю сообщение об ошибке при импорте этих файлов PNG? - PullRequest
0 голосов
/ 26 мая 2020

Я получаю сообщение об ошибке при открытии моих PNG-файлов для игры с космическими захватчиками, которую я создаю с помощью учебника. Мой текущий код:

# Load Images
RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_red_small.png"))
GREEN_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_green_small.png"))
BLUE_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_blue_small.png"))

# Player Ship
YELLOW_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_yellow.png"))

# Lasers
RED_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_red.png"))
GREEN_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_green.png"))
BLUE_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_blue.png"))
YELLOW_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_yellow.png"))

# Background
BG = pygame.image.load(os.path.join("assets", "background-black.png"))

Когда я запускаю этот код, я получаю сообщение об ошибке:

    pygame 1.9.6
Traceback (most recent call last):
  File "/Users/brunoaldridge/Desktop/Space Invader/game.py", line 7, in <module>
Hello from the pygame community. https://www.pygame.org/contribute.html
    RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_red_small.png"))
pygame.error: Couldn't open assets/pixel_ship_red_small.png

Есть идеи, как решить эту проблему? У меня есть сборка python3, настроенная на sublime, а файлы PNG находятся в папке с файлом кода.

1 Ответ

0 голосов
/ 26 мая 2020

Используйте вместо этого относительные пути (так всегда лучше):

import os

curr_path = os.path.dirname(__file__) # Where your .py file is located
assets_path = os.path.join(current_path, 'assets') # The assets folder path

Окончательный код:

# Load Images
RED_SPACE_SHIP = pygame.image.load(os.path.join( assets_path, "pixel_ship_red_small.png"))
GREEN_SPACE_SHIP = pygame.image.load(os.path.join( assets_path, "pixel_ship_green_small.png"))
BLUE_SPACE_SHIP = pygame.image.load(os.path.join( assets_path, "pixel_ship_blue_small.png"))

# Player Ship
YELLOW_SPACE_SHIP = pygame.image.load(os.path.join( assets_path, "pixel_ship_yellow.png"))

# Lasers
RED_LASER = pygame.image.load(os.path.join( assets_path, "pixel_laser_red.png"))
GREEN_LASER = pygame.image.load(os.path.join( assets_path, "pixel_laser_green.png"))
BLUE_LASER = pygame.image.load(os.path.join( assets_path, "pixel_laser_blue.png"))
YELLOW_LASER = pygame.image.load(os.path.join( assets_path, "pixel_laser_yellow.png"))

# Background
BG = pygame.image.load(os.path.join( assets_path, "background-black.png"))

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...