Commit Graph

15 Commits

Author SHA1 Message Date
08570f3aab feat(事件系统): 实现完整的事件处理框架
添加事件系统核心组件,包括事件基类、各种输入事件类型和事件分发机制。主要功能:
- 新增基础事件类及键盘、鼠标、触摸、手柄等输入事件
- 在Actor类中实现事件监听和分发功能
- 在Scene类中添加事件处理逻辑
- 在Application类中集成SDL事件转换和分发
- 添加测试用例验证手柄事件处理

事件系统支持冒泡和优先级排序,为游戏交互提供基础支持
2026-03-28 03:57:52 +08:00
0171c9d22a refactor(core): 重构资源销毁流程,改为集中式管理
将各模块的析构函数中自动调用shutdown()的逻辑移除,改为在Application::shutdown()中统一手动调用
调整SDL初始化和退出流程,避免重复调用
添加测试用的1秒定时退出逻辑
清理主程序中的示例代码
2026-03-25 20:00:13 +08:00
9a5b36392c refactor(actor): 重构Actor类以支持完整变换体系
重构Actor类,添加变换矩阵计算和父子关系处理
- 添加本地和世界变换矩阵计算
- 实现锚点、旋转、缩放等变换属性
- 添加父子关系变换继承
- 优化子节点管理,支持按ZOrder排序
- 添加透明度继承功能
2026-03-21 03:34:56 +08:00
4870627b4d feat(audio): 添加音频数据库支持及XML解析功能
实现音频数据库系统,支持从XML文件加载音频配置
添加RapidXML库用于XML解析
提供统一的音频查询接口,支持音效、音乐和随机音效组
2026-03-21 02:44:29 +08:00
46ca534a19 feat(音频): 添加从NPK加载音频文件的功能
实现SoundPackArchive系统用于管理NPK格式的音频资源包
为Music和Sound类添加loadFromNpk方法支持从NPK加载音频
新增音频播放控制功能如暂停、恢复、停止等
2026-03-21 00:37:32 +08:00
18111dae6b feat(资源管理): 添加NPK文件格式支持及精灵创建功能
实现NPK文件格式的解析和缓存管理,支持从NPK文件中加载精灵图像
添加Sprite::createFromNpk方法用于从NPK创建精灵
修改Texture和Sprite相关方法以支持const数据
添加zlib依赖用于NPK文件解压
优化Asset::listFilesWithExtension的扩展名匹配逻辑
2026-03-20 04:21:42 +08:00
29dec1f64b refactor(resource): 重构资源管理模块,将utils目录下的资源相关文件迁移到resource目录
重构资源管理模块,将原utils目录下的asset、binary_reader、pvf_archive和script_parser等资源相关文件迁移到新创建的resource目录中,并优化相关代码结构。同时更新所有引用这些文件的代码路径,保持项目一致性。

新增完整的资源管理功能:
- BinaryReader: 提供二进制文件读取功能
- PvfArchive: 实现PVF资源包解析
- ScriptParser: 支持脚本二进制数据解析
- Asset: 提供文件系统操作接口

优化内容包括:
1. 统一资源管理相关代码位置
2. 完善各模块的文档注释
3. 增加错误处理和日志记录
4. 实现更安全的资源访问方式
2026-03-20 02:46:47 +08:00
6c11e4d8be fix(audio): 修复音频系统初始化及资源加载问题
- 修改音频系统初始化逻辑,增加备用初始化参数
- 优化音乐和音效加载方式,直接加载文件而非内存
- 增加错误日志输出,便于排查问题
- 更新MingW平台构建脚本,完善依赖DLL复制
2026-03-20 02:36:11 +08:00
9ce47cc501 feat(audio): 添加音频系统支持背景音乐和音效播放
实现完整的音频系统,包括:
1. 添加 SDL2_mixer 依赖
2. 创建音频系统核心类 AudioSystem
3. 实现音乐(Music)和音效(Sound)类
4. 在游戏主循环中初始化音频并播放背景音乐
5. 更新构建脚本以支持音频库
2026-03-19 03:13:18 +08:00
cb9f497fbb feat(资源加载): 替换stb_image为SDL_image并添加脚本解析功能
- 将stb_image替换为SDL_image以解决Switch平台兼容性问题
- 添加PVF资源包解析器和脚本解析器功能
- 修改各平台配置文件添加SDL_image依赖
- 更新纹理加载逻辑使用SDL_image API
- 新增脚本解析相关类用于处理游戏脚本数据
2026-03-18 04:18:57 +08:00
a4883b433e feat(utils): 添加二进制文件读取器 BinaryReader
refactor(assets): 将着色器路径从 "shaders" 改为 "assets/shaders"
refactor(build): 统一各平台资源目录复制逻辑为 assets 目录

style: 更新 .gitignore 忽略参考代码目录和 .pvf 文件
2026-03-18 03:12:39 +08:00
57a96a0cc5 feat(渲染): 重构渲染系统并添加相机支持
- 在Batch中添加纹理采样器uniform设置
- 重构Sprite渲染逻辑,使用Renderer的drawSprite方法
- 添加Camera类并集成到Application和Renderer中
- 支持Y轴翻转的投影矩阵以适应2D游戏坐标系
- 改进颜色处理,移除不必要的归一化计算
- 添加渲染错误处理和日志输出
2026-03-17 18:40:19 +08:00
f0298504ac feat(渲染): 添加Sprite类并实现基础渲染功能
添加Sprite类用于2D精灵渲染,支持纹理、着色器、颜色、翻转等属性
在Application中增加批处理渲染逻辑
在示例游戏中添加测试精灵
2026-03-17 16:01:22 +08:00
b35ecb197f feat(场景管理): 实现场景管理系统及基础2D角色框架
添加场景管理器(SceneManager)和场景(Scene)类,用于管理游戏场景的压入、弹出和切换
实现基础2D角色(Actor)类,支持父子关系和场景管理
添加侵入式链表(IntrusiveList)工具类,用于高效管理场景中的角色对象
在应用主循环中集成场景更新和渲染逻辑
2026-03-17 15:11:31 +08:00
092a28c30e refactor: 重构项目结构和资源管理
- 将主程序代码和资源文件移动到Game目录下
- 更新构建脚本以适配新的目录结构
- 重构应用初始化流程,移除冗余代码
- 更新着色器文件路径和资源管理逻辑
- 删除废弃的windows.lua构建脚本
- 优化Switch平台构建配置
2026-03-16 02:45:52 +08:00