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

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