Как исправить ошибку изображения Python Pygame в окне - PullRequest
0 голосов
/ 14 ноября 2018

Я пытался загрузить png-файл в python с помощью pygame, и он не работает, это мой код:

import pygame
from pygame.locals import *
pygame.init()
display_width = 800
display_height = 600
black = (0,0,0)
white = (255,255,255)
red = (255,0,0)

gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption("Game")
clock = pygame.time.Clock()
carImage = pygame.image.load('you.png')
def car(x,y):
    gameDisplay.blit(carImage,(x,y))
    x = (display_width * 0.45)
    y = (display_height * 0.8)
    crashed = False
    while not crashed:
       for event in pygame.event.get():
           if event.type == pygame.QUIT:
               crashed = True
       gameDisplay.fill(white)
       car(x,y)
       pygame.display.update()
       clock.tick(24)
    pygame.quit()
    quit()

и там написано:

Traceback (последний последний вызов):

Файл "C: /Users/Dawn/PycharmProjects/snakegame/snake.py", строка 13, в carImage = pygame.image.load ('you.png')

pygame.error: Не удалось открыть вас.png

Пожалуйста, помогите мне, я не знаю, почему это продолжает отображаться.

Я сейчас использую окно 10и я сделал C: \.\...\you.png метод, но он все еще не работает.

1 Ответ

0 голосов
/ 14 ноября 2018

На основании этого ответа рекомендуется вместо этого использовать относительные пути. Это всегда лучше, так как вам не нужно заботиться о «\», «/» или ОС (кто-то уже сделал это для нас: v).

Проблема, похоже, в том, что приведенный ниже код хорошо работает для меня Считается, что у вас есть папка images_store для хранения ваших изображений в том же каталоге, что и папка .py (конечно, вы можете изменить ее так, как хотите).

import pygame
import os.path as osp
from pygame.locals import *


pygame.init()

display_width, display_height = 800, 600
black = (0,0,0)
white = (255,255,255)
red = (255,0,0)

current_path = osp.dirname(__file__)                          # Where your .py file is located
image_path = osp.join(current_path, 'images_store')           # The image folder path
carImage = pygame.image.load(osp.join(image_path, 'you.png'))


gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption("Game")
clock = pygame.time.Clock()

def car(x,y):
   gameDisplay.blit(carImage, (x, y))

x = (display_width * 0.45)
y = (display_height * 0.8)
crashed = False
while not crashed:
   for event in pygame.event.get():
       if event.type == pygame.QUIT:
           crashed = True
   gameDisplay.fill(white)
   car(x,y)
   pygame.display.update()
   clock.tick(24)
pygame.quit()
quit()

p.s.1 - Подробнее о os.path здесь .

p.s.2 - я использую MacOS.

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