如何解决为什么会导致此错误以及如何修复它
我正在尝试在 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 举报,一经查实,本站将立刻删除。