python开发打地鼠5 #
- 创建资源类1
- 创建资源类2
收获 #
掌握python类的使用方法,通过PyGame实践学会独立建立和更新项目,完成打地鼠游戏开发
创建资源类1 #
本小节为资源类的构造函数定义。
class PygameResourceLoader(): def __init__(self, image_paths_dict=None, sound_paths_dict=None, font_paths_dict=None, bgm_path=None, **kwargs): # 设置属性 self.bgm_path = bgm_path self.font_paths_dict = font_paths_dict self.image_paths_dict = image_paths_dict self.sound_paths_dict = sound_paths_dict # 导入字体 self.fonts = self.fontload(font_paths_dict) # 导入图像 self.images = self.defaultload(image_paths_dict, pygame.image.load) # 导入声音 self.sounds = self.defaultload(sound_paths_dict, pygame.mixer.Sound)
创建资源类2 #
本小节为资源类中锤子的默认的素材导入函数、导入字体函数和播放背景音乐函数的设置。
##############################在PygameResourceLoader类下,__init__()函数后面,添加下列新的功能函数################### '''默认的素材导入函数''' def defaultload(self, resources_dict, load_func): if resources_dict is None: return dict() assert isinstance(resources_dict, dict) resources = dict() for key, value in resources_dict.items(): if isinstance(value, dict): resources[key] = self.defaultload(value, load_func) elif isinstance(value, list): resources[key] = list() for path in value: resources[key].append(load_func(path)) else: resources[key] = load_func(value) return resources '''导入字体''' def fontload(self, font_paths_dict): if font_paths_dict is None: return dict() assert isinstance(font_paths_dict, dict) fonts = dict() for key, value in font_paths_dict.items(): if not value.get('system_font', False): fonts[key] = pygame.font.Font(value['name'], value['size']) else: fonts[key] = pygame.font.SysFont(value['name'], value['size']) return fonts '''播放背景音乐''' def playbgm(self): pygame.mixer.music.load(self.bgm_path) pygame.mixer.music.play(-1, 0.0)
小结 #
本节介绍了资源类的创建过程和功能函数的实现
需要掌握并实现如何使用pygame在项目中创建资源类