import pygame, sys from settings import * from level import Level class Game: def __init__(self): # 初始化 Pygame 库 pygame.init() # 设置游戏窗口尺寸 self.screen = pygame.display.set_mode((WIDTH,HEIGTH)) # 设置游戏窗口标题 pygame.display.set_caption('Zelda') # 创建时钟对象,用于控制游戏帧率 self.clock = pygame.time.Clock() # 创建游戏关卡对象 self.level = Level() # 声音设置 # 加载背景音乐文件 main_sound = pygame.mixer.Sound('../audio/main.ogg') # 设置背景音乐音量 main_sound.set_volume(0.5) # 播放背景音乐,循环播放(loops=-1 表示无限循环) main_sound.play(loops = -1) def run(self): # 进入游戏主循环,持续运行直到退出。 while True: # 遍历所有的事件。 for event in pygame.event.get(): # 如果事件类型是退出事件,即关闭窗口。 if event.type == pygame.QUIT: # 退出 Pygame 应用程序 pygame.quit() # 退出 Python 解释器 sys.exit() # 如果有键盘按下事件。 if event.type == pygame.KEYDOWN: # 按下 'm' 键切换游戏菜单的显示 if event.key == pygame.K_m: # 切换游戏菜单的显示状态。 self.level.toggle_menu() # 用水的颜色填充游戏窗口背景 self.screen.fill(WATER_COLOR) # 运行游戏关卡的主循环 self.level.run() # 更新屏幕显示 pygame.display.update() # 控制游戏帧率为 FPS self.clock.tick(FPS) if __name__ == '__main__': # 创建 Game 类的实例 game game = Game() # 调用 game 对象的 run 方法,启动游戏主循环 game.run()