微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么会导致此错误以及如何修复它

如何解决为什么会导致此错误以及如何修复它

我正在尝试在 python 上为学校编写扫雷程序。我看了一个关于这个的 YouTube 视频并复制了一点。但现在我因为这个错误而卡住了:

文件“e:\Schule\Spiele\minesweeper\minesweeper.py”,第 98 行,在 loadImages 中 self.images[images] = pygame.image.load(images) FileNotFoundError: 没有这样的文件或目录。

import pygame
import os



class Settings(object):
    def __init__(self):
        self.size = (9,9)
        self.screenSize = (800,800)



class Board(object):
    def __init__(self):
        self.settings = Settings()
        self.setBoard()

    def setBoard(self):
        self.board = []
        
        for row in range(self.settings.size[0]):
            row= []

            for col in range(self.settings.size[1]):
                piece = None
                row.append(piece)
            self.board.append(row)

    def getSize(self):
        return self.settings.size


class Game(object):
    def __init__(self) :
        self.settings = Settings()
        self.board = Board()
        self.pieceSize = self.settings.screenSize[0] // self.board.getSize()[1],self.settings.screenSize[1] // self.board.getSize()[0]
        self.loadImages()



    def run(self):
        pygame.init()
        self.screen = pygame.display.set_mode(self.settings.screenSize)

        running = True

        while running:
            for event in pygame.event.get():
                if (event.type == pygame.QUIT):
                    running = False
            self.draw()

            pygame.display.flip()
        pygame.quit

这是导致错误函数,但我不知道如何解决这个问题。 它应该用这些图像创建一个网格

    def draw(self):
        pass
        topLeft = (0,0)

        for i in range(self.board.getSize()[0]):
            for n in range(self.board.getSize()[1]):
                image =  self.images["norm_zelle.gif"]
                self.screen.blit(image,topLeft)
                topLeft = topLeft[0] + self.pieceSize[0],topLeft[1]
            topLeft = 0,topLeft[1] + self.pieceSize[1]
            

    def loadImages(self):
        self.images = {}
        file_path = os.path.dirname(os.path.abspath(__file__))
        image_path = os.path.join(file_path,"images")
        sound_path = os.path.join(file_path,"sounds")

        


if __name__ == '__main__':
    os.environ['SDL_VIDEO_WINDOWS_POS'] = "50,1100"
    pygame.init()
    game = Game()
    game.run()
    pygame.quit()

解决方法

您的 loadImages 函数从未真正加载图像!尝试在 loadImages 中添加以下代码:

for image in image_path:
    self.images[image] = pygame.image.load(image)

您还必须提供一个名为 norm_zelle.gif 的文件,该文件应位于名为 images 的目录中。

注意:您可能想对声音做同样的事情。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。