Pygame 加载图像

3 投票
1 回答
1153 浏览
提问于 2025-04-18 00:46

我正在尝试用pygame制作一个棋盘游戏,目前我已经写好了加载棋盘图像的代码,可以把它显示在屏幕上。不过,在用pygame打开这个图像时遇到了一些困难。如果你感兴趣的话,这是我想加载的图像的路径:/home/kody/Coding/Python/Test/MonopolyPygame/MonopolyLib/board.bmp

我有一个叫做IMAGE的类,用来加载这个图像,里面有一个初始化的方法。

class IMAGE
    __init__(self):
    self.self.board = pygame.image.load("board.bmp")
IMAGE()

如果我单独运行这个小程序,它运行得很好,但当我和我的Main类一起运行时,就出现了问题。

我把main.py放在一个叫做BoardPygame的文件夹里,然后在这个文件夹里还有一个叫做BoardLib的文件夹。在BoardLib文件夹里,我有一个叫init.py的python文件,这样就把BoardLib变成了一个库。然后我还有另一个python文件叫做images.py,这个文件里只包含了IMAGE这个类,同时在这个文件里还有一个bmp格式的图像,叫做board.bmp。

在我的main.py文件里,有一个叫做Main的类。然后我通过这个类来访问images.py,以便加载图像,或者至少是尝试加载。

import BoardLib
from BoardLib import *

class Main:
    def __init__(self):
        self.Images = images.IMAGE()

但是每次我只用main.py文件运行程序时,总是会出现错误。

File "/home/kody/Coding/Python/Test/MonopolyPygame/MonopolyLib/images.py", line 8, in __init__
self.board = pygame.image.load("board.bmp")
pygame.error: Couldn't open board.bmp

有没有什么原因可能导致这个问题出现呢?

谢谢

1 个回答

1
class IMAGE
    __init__(self):
    self.self.board = pygame.image.load("board.bmp")
IMAGE()

在这段代码中,试着去掉重复的self,像这样做。

class IMAGE
    __init__(self):
    self.board = pygame.image.load("board.bmp")
IMAGE()

另外,在主程序中,试试这个:

import BoardLib
from BoardLib import *

class Main:
    def __init__(self):
        self.Images = IMAGE().board

希望这能帮到你。

撰写回答