You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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()