Я получаю эту ошибку: не могу открыть "Файл" - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь отобразить изображение с помощью pygame, но получаю эту ошибку:

Traceback (последний вызов был последним): Файл "H: /profile/desktop/untitled/venv/Scripts/AhjaiyGame.py", строка 28, в start = pygame.image.load (os.path.join (папка "wecvguh.png")) pygame.error: Не удалось открыть H: \ profile \ desktop \ без названия \ venv \ Scripts \ wecvguh.png

Кодовый блок:

import sys
import random
import os
import subprocess
import pygame
pygame.init()
GUI = pygame.display.set_mode((800,600))
pygame.display.set_caption("The incredible guessing game")
x = 284
y = 250
width = 68
length = 250
run = True
while run:
 for event in pygame.event.get():
    if event.type == pygame.QUIT:
        run =False
 if event.type == pygame.KEYDOWN:
  command = "python AhjaiyCPT.py"
  subprocess.call(command)


 pygame.display.update()


folder = os.path.dirname(os.path.realpath(__file__))

start = pygame.image.load(os.path.join(folder, "wecvguh.png"))
   def img(x,y):
        gameDisplay.blit(start, (x,y))
    while run:
        gameDisplay.fill(white)
        start(x, y)


pygame.quit()

1 Ответ

0 голосов
/ 17 января 2019

В коде есть два цикла выполнения, поэтому он никогда не попадает во второй цикл.

Отступы в коде перепутаны - может быть, из-за вставки в SO? Подавляющее большинство программистов используют 4 пробела для отступа. Это, вероятно, хороший обычай для подражания.

Код также загружал «стартовое» изображение при каждой итерации цикла, в этом нет необходимости (если только он не изменяется на диске, в этом случае используйте os.stat() для проверки изменений перед его повторной загрузкой).

Переработанный основной цикл:

folder = os.path.dirname(os.path.realpath(__file__))
start  = pygame.image.load(os.path.join(folder, "wecvguh.png"))

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            command = "python AhjaiyCPT.py"
            subprocess.call(command)

    gameDisplay.fill(white)
    gameDisplay.blit(start, (x,y))
    pygame.display.update()

pygame.quit()
...