Commit Graph

39 Commits

Author SHA1 Message Date
ac4d2ffc9a feat(脚本引擎): 添加SquirrelVM运行功能并重构主脚本
为SquirrelVM添加run()方法用于执行脚本中的main函数
重构main.nut脚本结构,将打印和错误调用封装到main函数中
在Application启动时自动执行脚本的main函数
2026-03-31 04:16:26 +08:00
d25ff7655b feat: 添加Squirrel脚本支持并完善平台相关功能
- 新增SquirrelVM类实现脚本引擎功能
- 添加Windows平台初始化代码以支持UTF-8控制台输出
- 在各平台构建配置中添加squirrel依赖
- 创建测试脚本main.nut验证中文支持
- 更新.gitignore排除nul文件
2026-03-30 22:09:59 +08:00
d97b4e69b9 feat(窗口): 实现窗口大小和位置调整功能
添加窗口大小和位置调整的回调处理,支持通过按键触发窗口尺寸和位置变化
完善Window类的setSize、setPos和pos方法实现,添加SDL窗口操作
2026-03-29 12:33:10 +08:00
dc41475b87 feat(字体渲染): 添加字体管理和文本渲染功能
- 新增FontManager类用于管理字体资源
- 添加TextSprite类实现文本渲染功能
- 更新构建配置添加SDL2_ttf依赖
- 添加多种字体资源文件
- 修改窗口和相机初始化逻辑
- 更新Switch平台构建配置
2026-03-29 11:46:25 +08:00
890211431e feat(actor): 为Actor添加UUID支持和对象注册功能
添加UUID类用于生成唯一标识符
实现ObjectRegistry用于管理Actor对象
在Actor构造和析构时自动注册/注销对象
修改窗口默认分辨率为1280x720
2026-03-29 10:27:30 +08:00
51be8a6128 docs: 更新 README 文档内容
- 完善特性描述,添加音频系统、输入系统等新功能说明
- 更新依赖列表,添加 SDL2_mixer 和 zlib
- 优化示例代码,展示资源管理和 Actor 系统
- 添加模块概览表格和技术亮点章节
- 重构项目结构说明,反映最新代码组织
2026-03-28 04:42:54 +08:00
913cd966b3 feat(sprite): 添加偏移量支持并优化NPK精灵创建
添加Sprite类的偏移量属性,支持设置和获取偏移量
修改NPK精灵创建逻辑,自动设置帧偏移量
注释掉main.cpp中不必要的锚点设置
2026-03-28 04:36:02 +08:00
b5e5fe5e63 feat(动画系统): 实现动画系统基础功能
添加动画组件及相关数据结构,支持从PVF加载动画资源
实现动画播放、帧控制、插值逻辑等功能
更新主程序以测试动画系统
2026-03-28 04:29:11 +08:00
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
fc81c2634c feat(switch): 添加运行目标时自动执行nxlink的功能
添加on_run回调函数,在目标运行时会自动通过nxlink.exe启动生成的NRO文件
2026-03-18 12:51:08 +08:00
7fc056496b docs: 添加项目README文件
添加项目README文件,包含项目介绍、特性、构建说明、快速开始示例和项目结构等信息
2026-03-18 04:23:15 +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
0995fb05f7 refactor(core): 移除模块系统及相关功能
删除模块系统实现及相关代码,包括Module类、Application中的模块管理功能
移除AGENTS.md中关于模块模式的文档
2026-03-17 05:02:54 +08:00
a09c344bb7 refactor(base): 引入引用计数智能指针系统替换std::shared_ptr
- 新增RefObject基类实现引用计数功能
- 新增RefPtr智能指针模板类
- 修改Texture和Shader类继承自RefObject
- 替换原有std::shared_ptr为RefPtr
- 更新相关代码中的指针操作
2026-03-17 04:50:15 +08:00
092a28c30e refactor: 重构项目结构和资源管理
- 将主程序代码和资源文件移动到Game目录下
- 更新构建脚本以适配新的目录结构
- 重构应用初始化流程,移除冗余代码
- 更新着色器文件路径和资源管理逻辑
- 删除废弃的windows.lua构建脚本
- 优化Switch平台构建配置
2026-03-16 02:45:52 +08:00
f8c2c26cdc refactor: 移除测试代码并简化应用配置
移除application.cpp中的测试绘制代码
简化main.cpp中的初始化逻辑,移除相机相关代码
调整窗口大小和渲染器视口配置
2026-02-26 13:19:43 +08:00
6f8d1f1255 feat(渲染器): 添加基础2D渲染系统
实现核心渲染功能,包括着色器管理、批处理系统、相机控制和纹理加载

- 添加着色器管理器用于加载和管理GLSL着色器程序
- 实现批处理系统优化绘制调用
- 添加相机控制支持视图和投影矩阵
- 实现纹理加载和管理功能
- 添加基础2D渲染API包括绘制四边形和精灵
- 集成到应用系统中,支持自动初始化和清理
- 添加示例着色器用于彩色四边形和纹理精灵
- 更新构建系统包含新的渲染相关文件
2026-02-26 13:16:31 +08:00
3870220fe8 添加json头文件 2026-02-26 10:17:20 +08:00
afbd5bae6b refactor: 移除测试模块并清理主函数代码 2026-02-26 09:46:14 +08:00
ab3dd829b8 feat(窗口图标): 添加窗口图标支持并完善相关资源处理
添加窗口图标功能,包括:
1. 支持通过配置文件设置窗口图标
2. 添加Windows资源文件处理
3. 更新各平台构建脚本以处理图标资源
4. 添加图标使用文档说明
5. 优化Application类结构

同时修复了Switch平台构建脚本中的团队名称错误
2026-02-26 09:16:25 +08:00
c94e43089b 更名完成 2026-02-22 14:28:20 +08:00
8619316289 docs: 添加项目README文档
包含项目概述、特性、平台支持、构建说明、快速开始示例、架构说明、核心模块介绍、项目结构和API参考等内容
2026-02-21 03:40:05 +08:00
9f29192ae8 feat(平台): 添加Switch平台支持并实现资源管理器
- 新增Switch平台初始化与清理功能
- 实现Asset资源管理器类,提供文件读写、路径处理等功能
- 完善Window类的销毁逻辑,释放SDL资源
- 更新Switch平台编译配置,移除冗余标志
- 在主程序中集成资源管理器功能
2026-02-21 03:34:48 +08:00
ce2cc4d210 refactor(core): 重构代码组织结构,将类型定义移至types目录
将核心类型定义从core目录迁移至新创建的types目录,包括:
- 基础类型别名(type_alias.h)
- 数学相关类型(type_math.h)
- 颜色类型(type_color.h)
- 窗口配置合并至application.h
删除不再使用的平台配置和旧类型文件
优化头文件包含关系,减少编译依赖
2026-02-21 02:46:19 +08:00
0f9ea65066 变更初始 2026-02-21 02:34:51 +08:00
7134b61dc2 linux 编译通过 2026-02-17 21:40:55 +08:00
a5379b3816 渲染后端加入 2026-02-17 13:28:38 +08:00