以模块方式加载pygame图像

0 投票
3 回答
817 浏览
提问于 2025-04-17 21:03

我有很多图片需要加载到一个Pygame程序里。请问我可以从一个单独的脚本中加载这些图片,然后把这个脚本作为模块导入到我的主程序里吗?这样我就可以在主程序中使用这些图片了。非常感谢大家的帮助!提前谢谢!

3 个回答

0

在考虑了上面两个答案后,我简单地写了一个脚本,加载了所有的图片,并创建了一个叫做 image_dict 的字典,字典里的键是图片的名字。然后我把这个程序保存为 "load_images.py"。

接着在第二个程序里,我用 "from load_images.py import image_dict" 这行代码引入了这个字典。这样,字典里的键就能让我获取到对应的图片了。

谢谢。

1

我通常会在和主文件同一个文件夹里,创建一个叫做constants.py或者images.py的单独文件。比如在images.py里,我会这样加载一张图片:

X = pygame.image.load("image_path.extension")

然后我只需要在主文件里导入这个images文件,这样X这张图片就可以直接在主文件里使用了 :) 希望这对你有帮助!

(补充) 我做的正是你说的那样,也就是在load_images.py文件里加载图片,然后在主程序里这样导入这个文件:

from load_images.py import *

然后在主文件里,我可以这样访问所有的图片:

image1 = pic1
image2 = pic2
.....

等等。

2

如果你能把文件命名得有意义一些,那会更好。

你可以把这些图片放进一个字典里,文件名就可以作为这个字典的键。

下面是一个使用的例子:

from os import listdir
from os.path import isfile, join

IMAGE_PATH = "/images"
images_dict = dict()

images = [ f for f in listdir(IMAGE_PATH) if isfile(join(IMAGE_PATH,f)) and f.endswith('png') ]

for filename in images:
    images_dict[os.path.splitext(filename)[0]] = pygame.image.load(join(IMAGE_PATH,filename))

这样你就可以以以下方式使用这些图片:

image = images_dict['fox']

撰写回答