以模块方式加载pygame图像
我有很多图片需要加载到一个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']