我目前正在 Pygame 上开发一款游戏。最近,有人帮我在这个网站上制作了我的加载栏(上帝,Rabbid76是个天才)。更严重的是,我需要在我的程序中加载所有图片,所以我使用了以下代码:!(我使用'picture'作为占位符,在我的真实目录中,它是 ' hero_left0.png ' 或 ' box.png ' 或 ' Torch.png ',等等):
Image=picture.image.load(sprite/picture.png).convert_alpha
bar_load=bar_load - 1
我需要这样做以适应任何图片。这意味着 350*2 个元素,所以 700 行代码!
有没有办法优化这个?所有图片都在同一个文件夹名称'sprites' 中。
据我了解,您希望将所有图像加载到您的代码中。您应该将所有图像对象存储在 dict 或其他一些结构中。这样做:
import os
# If using windows make sure to convert all the '\' in the path to '/'
# like so: sprites_folder_path.replace('\', '/')
sprites_folder_path = 'path_to_sprites_folder'
# Make sure there is a '/' at the end of the path
def image_loader(path) -> str:
for i in os.listdir(path):
yield (os.path.splitext(i)[0]),
picture.image.load(path + i).concert_alpha)
images = dict(image_loader(sprite_folder_ path))
这将生成所有图像对象的字典作为值和文件名作为键。您可以参考每张图片:images[filename].
或者,如果您想对此非常简洁;
def image_loader(path) -> str:
return dict((os.path.splitext(i)[0]), picture.image.load(path + i).concert_alpha) for i in os.listdir(path))
注意:这仅适用于所有文件名都是有效的 python 变量名,如果不使用其他东西作为字典的键或重命名无效的那些
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句