# ezgal **Repository Path**: egg34/ezgal ## Basic Information - **Project Name**: ezgal - **Description**: 基于python的轻量级galgame框架 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2021-10-15 - **Last Updated**: 2024-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ezgal > author: Mz1 > > email: mzi_mzi@163.com > > bilibili@Mz1不是黑帽子 说明:ezgal是一个基于**python**和**pygame**的galgame框架。**最简单的使用方法不需要编写程序,直接写json就可以完成。(现在正在向.mz脚本发展)** **需要安装pygame库: pip install pygame** P.S. 非专业开发,不喜勿喷。 > **进度和需求:** > > 需要增加文字出现的动画效果! > > 目前在完善游戏界面中底部的菜单! > > 建立游戏存档! > > 处理dialogue为null的情况! > > *现在游戏过程中存在点击过快来不及加载的bug ## 文件/目录说明 ### 目录 data/ --> 游戏数据文件夹 data/icon/ --> 图标文件夹 data/font/ --> 字体文件夹 data/music/ --> 音乐文件夹
data/img/ --> 图片文件夹 data/img/sys/ --> **系统(框架)图片**文件夹
data/scene/ --> 场景文件夹**(最重要的故事剧情文件夹)**【目前存在项目文件夹中的大部分data文件是为了测试】 save/ --> 游戏存档文件夹 raw/ --> 原始文件文件夹(剧本+图片啥的) ### 文件 set.json --> 配置文件 main.py --> **主程序脚本** build.py --> 用于**编译raw文件的脚本** LICENSE --> 开源许可证 ## 设置面板可设置的内容 出了音量还有啥,暂时没想到,先空着吧 先去实现存档面板 ## 场景文件格式 详见:[场景文件格式](场景文件格式.md) ## RAW文件编写说明 raw文件中剧本文件后缀名为.mz(如1.mz) 通过raw方式可以更轻巧的对游戏脚本进行编写,由build.py来编译成data文件目录中的数据文件。 ### 语法 ``` # 和python采用一样的注释方式 @at_bus_stop: # 场景代表一个scene文件,作为标记使用 set background xxxxxx.jpg # 设置游戏背景 set Mz1 img xxxxxx.png # 设置人物图像 Mz1: 今天天气真好。 # 表示 Mz1说了"今天天气真好。" 是啊,今天天气真好! # 表示 无人 直接显示"是啊,今天天气真好!" jmp @at_school # 表示跳转到at_school场景,如果没有jmp则默认为顺序执行 @at_home: Mz1: 终于回到家了 @at_school: Mz1: md又上学了 jmp @at_home ``` ## .mzpak文件格式 用于打包一整个data文件夹到一个.mzpak文件 ```cpp struct Mzpak{ DWORD magic = 0x317a4d2e; // .Mz1文件指纹 DWORD time; // 打包这个文件时的时间戳 }; // 文件头结束紧接着就是文件结构体 struct Mzpakfile{ BYTE mark = 0x99; // 固定标志0x99 DWORD file_name_length; // 文件名长度 char file_name[file_name_length]; // 文件名 DWORD file_size; // 文件大小,单位byte BYTE content[file_size]; // 文件的内容 }; ```