pygame.error: не удалось открыть images / ship.bmp - PullRequest
0 голосов
/ 20 января 2020

Снимок экрана с текстом ошибки

Текст ошибки:

Traceback (most recent call last):
  File "C:\Users\Sean Takei\Desktop\python_work\alien_invasion\alien_invasion3.py", line 40, in <module>
    ai= AlienInvasion()
  File "C:\Users\Sean Takei\Desktop\python_work\alien_invasion\alien_invasion3.py", line 21, in _init__
    self.ship= Ship(self)
  File "C:\Users\Sean Takei\Desktop\python_work\alien_invasion\shiptest.py", line 23, in _init__
    self.image = pygame.image.load('images/ship.bmp' )
pygame.error: Couldn't open images/ship.bmp

Первый пост здесь, я новичок в python и проходил через Python Cra sh Учебник и застрял в главе 12 часть «Рисование корабля на экран». Сначала у меня есть файл ship.bmp в папке images в папке alien_invasion, где находится приведенный ниже код. Теперь у меня есть изображения как в папке images, так и в папке alien_invasion, и она показывает эту ошибку. Скажите пожалуйста, что я делаю не так

alien_invasion3.py

import sys

import pygame 

from settings import Settings 
from shiptest import Ship 

class AlienInvasion:
"""Overall class to manage game assets and behavior."""

    def __init__(self):
        """Initialize the game, and create game resources."""
        pygame.init()
        self.settings= Settings()

        self.screen= pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("Alien Invasion")

        self.ship= Ship(self)

    def run_game(self):
    """Start the main loop for the game."""
        while True:
        #Watch for keyboard and mouse events.
            for event in pygame.event.get():
                if event.type== pygame.QUIT:
                    sys.exit()

        #Redraw the screen during each pass through the loop.
            self.screen.fill(self.settings.bg_color)
            self.ship.blitme()

        #Make the most recently drawn screen visible.
            pygame.display.flip()

if __name__== '__main__':
#Make a game instance, and run the game.
    ai= AlienInvasion()
    ai.run_game()   

Ship.py

import pygame

class Ship:
"""A class to manage the ship."""

    def __init__(self, ai_game):
    """Initialize the ship and set its staring position."""
        self.screen= ai_game.screen
        self.screen_rect= ai_game.screen.get_rect()

    #Load the ship image and get its rect.
        self.image= pygame.image.load('images/ship.bmp')
        self.rect= self.image.get_rect()

    #Start each new ship at the bottom center of the screen.
        self.rect.midbottom= self.screen_rect.midbottom

    def blitme(self):
    """Draw the ship at its current location."""
        self.screen.blit(self.image, self.rect) 

settings.py

class Settings:
"""A class to store all settings for Alien Invasion."""

    def __init__(self):
    """Initialize the game's settings."""
    #Screen settings
        self.screen_width= 1200
        self.screen_height= 800
        self.bg_color= (0, 0, 255)          
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...