diff --git "a/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" "b/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" index 3e59e55..d9a634d 100644 --- "a/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" +++ "b/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" @@ -1,5 +1,26 @@ --- +### 2023-06-21 +本轮主要更改美术素材和添加音效, 并且使用excel作为项目配置表, 添加完整的游戏开始与结束流程 +主要工作内容如下: +* 完成简易且完整的游戏流程, 添加主菜单, 加载, 和结算页面, 主菜单包括`开始游戏`, `设置`, `结束游戏`三个按钮, 点击`开始游戏`进入加载页面, 加载完成后进入地牢. 当玩家死亡后跳出结算页面, 结算页面包含`重新开始`和`回到主菜单`的按钮 +* 优化渲染大量静态`Sprite`, 实现类为`ImageCanvas.cs`, 原理是将`Texture2D`的纹理数据绘制到另一张`Image`上, 并使用`Sprite2D`来渲染这张`Image`, 这样只需要调用一次渲染API就可以永久保存纹理数据, 为了防止同一帧突然添加大量渲染的图片导致处理时间过长, 这里引入了一个渲染队列机制, 如果渲染时间超过阈值时间, 后面的图片就放到下一帧渲染, 以确保游戏能稳定60帧运行 +* 现在每个地牢房间会生成一个`ImageCanvas`实例, 并覆盖整个房间, 武器抛出的弹壳或者其它`ActivityObject`可以调用`ActivityObject.BecomesStaticImage()`函数将物体的纹理渲染到房间的`ImageCanvas`上, 并且销毁当前对象, 这样大大节省性能开销 +* 新增读取excel配置表功能, 在插件中添加`导出excel表`按钮, 点击后会读取目录`DungeonShooting_Godot\excel\excelFile`下的所有`.xlsx`文件, 并生成对应的json配置文件和读取json的c#代码文件, 也就是根据excel表结构生成对应的实体类代码, 导出工具支持数据类型: `基础数据类型`, `Array`, `Dictionary`, 并且支持引用其它excel表 +* 更改`ActivityObject`创建流程, 现在不再像以前一样在编辑器中创建`ActivityObjectTemplate`了, 也不需要再`ActivityObject`子类上添加`[RegisterActivity]`标记, `ActivityObjectTemplate`和`RegisterActivity`类已被移除, 现在是直接在编辑器中创建`ActivityObject`子类节点, 注册对象需要在`ActivityObject.xlsx`表中填写物体`id`和`prefab路径` +* 更新地牢生成器, 添加支持生成boss房间, 生成器添加更多特性, 修复一个连接地牢房间失败的bug +* 地牢房间的门添加打开和关闭效果, 关门后房间外的敌人丢失目标 +* 新增输入管理器`InputManager.cs` +* 武器属性移入`Weapon.xlsx`配置表, 添加更多新属性, 用于创建更丰富的武器, 并且支持配置音效 +* 新增`狙击枪`和`冲锋枪` +* 武器素材更新, 为每种武器添加射击音效, 换弹音效, 上膛音效(音效包从unity商城和fanatical购买的), 并且游戏中左下角的武器预览ui会同步玩家手上的武器动画 +* 修复敌人扔出武器的一瞬间会触发重新拾起武器拾起的bug +* 修复投抛物体中心点位置计算不正确的bug +* 修复武器扔出去的一瞬间阴影位置不正确的bug +* 编辑器中生成`ResourcePathGenerator.cs`支持排除指定路径文件夹 +* 修复播放音效和背景音乐的API设置音量存在的bug + +--- ### 2023-05-10 本轮主要优化视觉上的效果, 并且完善模板房间创建的功能, 主要工作内容有: * 添加房间门的美术资源, 但是该资源依旧是一个临时资源 @@ -22,6 +43,7 @@ * 添加Ai使用武器属性变化: `AiBulletSpeedScale`, Ai使用该武器发射的子弹速度缩放比; `AiAmmoConsumptionProbability`, Ai使用该武器消耗弹药的概率 --- +--- ### 2023-03-19 本周主要完成Godot编辑器插件扩展, 目的为了更加方便为游戏添加内容, 主要工作内容如有: * 将原来编辑器中的`automation`面板移到Godot编辑器`2D`/`Script`这一栏, 并重命名为`Tools` diff --git a/README.md b/README.md index 18aa74c..82d70a8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.1.dev +一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.1.beta --- ### 游戏定义 @@ -18,6 +18,7 @@ ### 启动项目 git仓库的目录结构如下 > ├ DungeonShooting_Document (项目帮助文档, 更新日志相关的目录) +> ├ DungeonShooting_ExcelTool (项目excel配置表导出工具源代码) > └ DungeonShooting_Godot (Godot工程目录) 下载好指定的Godot版本, 注意使用的是Godot_Mono版, 使用Godot打开`DungeonShooting_Godot/project.godot`, 如果是第一次打开项目会弹出一个找不到资源的提示, 这是因为项目没有编译过, 点击Godot右上角`build`, 然后打`开项目设置`, 在`插件`这一个页签下启用`DungeonShooting_plugin`这个插件, 然后项目就可以正常运行了