更新文档
This commit is contained in:
parent
b9f24b662d
commit
b972db1f0e
|
@ -1,44 +1,41 @@
|
|||
|
||||
|
||||
---
|
||||
### 2023-3-19
|
||||
> 本周主要完成Godot编辑器插件扩展, 目的为了更加方便为游戏添加内容, 主要工作内容如有:
|
||||
> * 将原来编辑器中的`automation`面板移到Godot编辑器`2D`/`Script`这一栏, 并重命名为`Tools`
|
||||
> * `Tools`面板中添加创建UI的功能, 输入UI名称点击创建就能自动创建一个空的UI场景和相配套UI代码, 编辑器监听用户对于UI的改动, 一旦有变化, 就会自动重新生成UI基础代码, 这样做的好处是一旦有节点重命名或者移动位置, 用到这个节点的代码就会编译报错. 每个UI都分好了文件夹, 所有和当前UI有关的代码都应该被放到同一个UI文件夹下
|
||||
> * UI节点添加打开子UI的api, 允许嵌套打开UI
|
||||
> * `Tools`面板中添加创建地牢预制房间的功能, 现在不需要自己在节点管理器中添加`DungeonRoomTemplate`了, 并且节点管理器已经移除`DungeonRoomTemplate`
|
||||
> * 优化`RoomConfig.json`, 现在不是所有数据都存在这个配置里了, 这里面值放一些基础数据和房间详细配置的路径, 需要房间详细信息再进行动态加载
|
||||
> * `Uibase`添加协程支持, 功能和`ActivityObject`中的协程一样
|
||||
> * 重写`ActivityObject`中的投抛系统, 加入`ActivityObject`加入海拔高度字段, 并且自动计算精灵和阴影位置, 当海拔高度大于0时会自动做自由落体, 想向上抛物的话也只需要设置垂直方向的速度就行, 现在的`Throw()`函数仅仅只是对于设置海拔高度和垂直速度的一个封装
|
||||
本周主要完成Godot编辑器插件扩展, 目的为了更加方便为游戏添加内容, 主要工作内容如有:
|
||||
* 将原来编辑器中的`automation`面板移到Godot编辑器`2D`/`Script`这一栏, 并重命名为`Tools`
|
||||
* `Tools`面板中添加创建UI的功能, 输入UI名称点击创建就能自动创建一个空的UI场景和相配套UI代码, 编辑器监听用户对于UI的改动, 一旦有变化, 就会自动重新生成UI基础代码, 这样做的好处是一旦有节点重命名或者移动位置, 用到这个节点的代码就会编译报错. 每个UI都分好了文件夹, 所有和当前UI有关的代码都应该被放到同一个UI文件夹下
|
||||
* UI节点添加打开子UI的api, 允许嵌套打开UI
|
||||
* `Tools`面板中添加创建地牢预制房间的功能, 现在不需要自己在节点管理器中添加`DungeonRoomTemplate`了, 并且节点管理器已经移除`DungeonRoomTemplate`
|
||||
* 优化`RoomConfig.json`, 现在不是所有数据都存在这个配置里了, 这里面值放一些基础数据和房间详细配置的路径, 需要房间详细信息再进行动态加载
|
||||
* `Uibase`添加协程支持, 功能和`ActivityObject`中的协程一样
|
||||
* 重写`ActivityObject`中的投抛系统, 加入`ActivityObject`加入海拔高度字段, 并且自动计算精灵和阴影位置, 当海拔高度大于0时会自动做自由落体, 想向上抛物的话也只需要设置垂直方向的速度就行, 现在的`Throw()`函数仅仅只是对于设置海拔高度和垂直速度的一个封装
|
||||
|
||||
---
|
||||
|
||||
### 2023-3-13
|
||||
> 为了尽早能够完成核心功能, 对外展示demo, 三月上旬开发提速, 主要的工作内容有:
|
||||
> * 找到一个会触发关闭游戏卡死的 bug, 问题出在`TileMap.GetCellTileData()`函数上, 调用该函数在关闭游戏释放资源时会导致读取到已经被释放的内存, 但是卡死的问题还是有极小概率发生, 目前情况未知
|
||||
> * 发现并修复bug: 之前版本在自定义房间连接时, 如果生成带有拐角的通道, 通道生成的位置不是按最近位置生成, 这就导致生成的拐角通道特别长, 而且浪费空间, 现已修复
|
||||
> * 完成房间的定义, 并为房间划分好区域, 当玩家进入一个新的房间时开始关门并刷怪, 消灭房间内所有敌人时开门
|
||||
> * 重整`ActivityObject`子类实例化流程, 现在通过在`ActivityObject`子类上加`[RegisterActivity(id, prefabPath)]`标记来注册物体, 并调用`ActivityObject.Create(id)`来创建实例
|
||||
> * 在预制房间中添加自定义物体生成标记(`ActivityMark`), 通过标记可以指定生成的对象, 位置, 所在波数和延时生成时间, 也可以继承`ActivityMark`来扩展物体生成操作, 例如子类`EnemyMark`, 标记生成敌人, 并且可以指定初始武器与弹药量
|
||||
> * Ui核心框架已经搭建完成, 并划分好UI的层级, 现已通过`UiManager`管理Ui, 目前`UiManager`还有部分功能尚未完成
|
||||
> * 完成Ui类代码自动生成的功能, 现在可以根据Ui对象生成相应的图层调用代码, 更加方便编写Ui, 但是目前还没有接到编辑器中, 需要写代码手动调用接口
|
||||
> * 修复相机运动和抖动时存在的问题
|
||||
为了尽早能够完成核心功能, 对外展示demo, 三月上旬开发提速, 主要的工作内容有:
|
||||
* 找到一个会触发关闭游戏卡死的 bug, 问题出在`TileMap.GetCellTileData()`函数上, 调用该函数在关闭游戏释放资源时会导致读取到已经被释放的内存, 但是卡死的问题还是有极小概率发生, 目前情况未知
|
||||
* 发现并修复bug: 之前版本在自定义房间连接时, 如果生成带有拐角的通道, 通道生成的位置不是按最近位置生成, 这就导致生成的拐角通道特别长, 而且浪费空间, 现已修复
|
||||
* 完成房间的定义, 并为房间划分好区域, 当玩家进入一个新的房间时开始关门并刷怪, 消灭房间内所有敌人时开门
|
||||
* 重整`ActivityObject`子类实例化流程, 现在通过在`ActivityObject`子类上加`[RegisterActivity(id, prefabPath)]`标记来注册物体, 并调用`ActivityObject.Create(id)`来创建实例
|
||||
* 在预制房间中添加自定义物体生成标记(`ActivityMark`), 通过标记可以指定生成的对象, 位置, 所在波数和延时生成时间, 也可以继承`ActivityMark`来扩展物体生成操作, 例如子类`EnemyMark`, 标记生成敌人, 并且可以指定初始武器与弹药量
|
||||
* Ui核心框架已经搭建完成, 并划分好UI的层级, 现已通过`UiManager`管理Ui, 目前`UiManager`还有部分功能尚未完成
|
||||
* 完成Ui类代码自动生成的功能, 现在可以根据Ui对象生成相应的图层调用代码, 更加方便编写Ui, 但是目前还没有接到编辑器中, 需要写代码手动调用接口
|
||||
* 修复相机运动和抖动时存在的问题
|
||||
|
||||
---
|
||||
|
||||
### 2023-02-28
|
||||
> 经过数十天开发, 已经完成自定义房间功能, 支持配置连接门生成区域, 而不是像之前一样整个矩形外框都能生成门, 并且还做了在编辑器中可视化编辑连接们生成区域的功能,
|
||||
> 所有的自定义房间放在`resource/map/tileMaps`, 路径下, 使用`automation`面板下的`打包地牢配置`即可将所有房间的配置信息整合到`RoomConfig.json`文件内, 方便代码获取房间数据,
|
||||
> 在编辑器中添加`DungeonRoomTemplate`节点, 用于创建模板房间.
|
||||
经过数十天开发, 已经完成自定义房间功能, 支持配置连接门生成区域, 而不是像之前一样整个矩形外框都能生成门, 并且还做了在编辑器中可视化编辑连接们生成区域的功能,
|
||||
所有的自定义房间放在`resource/map/tileMaps`, 路径下, 使用`automation`面板下的`打包地牢配置`即可将所有房间的配置信息整合到`RoomConfig.json`文件内, 方便代码获取房间数据,
|
||||
在编辑器中添加`DungeonRoomTemplate`节点, 用于创建模板房间.
|
||||
|
||||
---
|
||||
|
||||
### 2023-02-15
|
||||
> 第一篇开发日志, 后面会更加频繁更新日志
|
||||
> 用了大半年事件完成完成项目基础架构搭建, 已经包含的功能有:
|
||||
> * 所有物体的父物体为`ActivityObject`, 可以在编辑器中找到节点`ActivityObjectTemplate`来快速创建物体模板
|
||||
> * 玩家, 敌人的基础移动, 拾起/扔掉武器, 武器袋存放武器, 切换武器, 手持武器开火, 换弹,
|
||||
> * 武器类别有近战/远程武器, 武器由属性类控制
|
||||
> * ai行为逻辑, 包括自动寻路, 发现玩家后追踪玩家, 通知其它ai玩家位置, 射程足够时朝玩家射击, 在玩家周围徘徊, 没有武器/弹药时寻找可用的武器
|
||||
> * 随机生成地牢, 地牢房间与房间由过道连接, 一个房间至少连接一个其它房间
|
||||
> * 游戏中UI, 包括血条, 玩家手持武器, 武器弹药, 换弹进度, 拾起武器提示
|
||||
> * 音效管理, 播放背景音乐和音效
|
||||
第一篇开发日志, 后面会更加频繁更新日志
|
||||
用了大半年事件完成完成项目基础架构搭建, 已经包含的功能有:
|
||||
* 所有物体的父物体为`ActivityObject`, 可以在编辑器中找到节点`ActivityObjectTemplate`来快速创建物体模板
|
||||
* 玩家, 敌人的基础移动, 拾起/扔掉武器, 武器袋存放武器, 切换武器, 手持武器开火, 换弹,
|
||||
* 武器类别有近战/远程武器, 武器由属性类控制
|
||||
* ai行为逻辑, 包括自动寻路, 发现玩家后追踪玩家, 通知其它ai玩家位置, 射程足够时朝玩家射击, 在玩家周围徘徊, 没有武器/弹药时寻找可用的武器
|
||||
* 随机生成地牢, 地牢房间与房间由过道连接, 一个房间至少连接一个其它房间
|
||||
* 游戏中UI, 包括血条, 玩家手持武器, 武器弹药, 换弹进度, 拾起武器提示
|
||||
* 音效管理, 播放背景音乐和音效
|
23
DungeonShooting_Document/项目帮助文档.md
Normal file
23
DungeonShooting_Document/项目帮助文档.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
前言: 该文档仅针对`DungeonShooting_Godot`目录下的Godot工程
|
||||
|
||||
---
|
||||
## 1.启动项目
|
||||
**Godot版本:** Godot4x
|
||||
**.net版本:** .net6.0
|
||||
使用Godot打开`project.godot`, 如果是第一次打开项目会弹出一个找不到资源的提示, 这是因为项目没有编译过, 点击Godot右上角`build`, 然后打`开项目设置`, 在`插件`这一个页签下启用`DungeonShooting_plugin`这个插件, 然后项目就可以正常运行了
|
||||
|
||||
---
|
||||
## 2.项目资源
|
||||
所有资源严格划分类别, 并放入指定的文件夹
|
||||
**项目目录结构如下:**
|
||||
* ./addons: 项目插件目录
|
||||
* ./prefab: 预制体资源目录
|
||||
* ./resource 美术,音乐,配置文件等资源放置路径
|
||||
* ./scene 场景资源
|
||||
* ./src 代码资源
|
||||
|
||||
---
|
||||
### 3.游戏框架
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Godot.NET.Sdk/4.0.1-rc.1">
|
||||
<Project Sdk="Godot.NET.Sdk/4.0.1">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
|
|
9
DungeonShooting_Godot/DungeonShooting.csproj.old
Normal file
9
DungeonShooting_Godot/DungeonShooting.csproj.old
Normal file
|
@ -0,0 +1,9 @@
|
|||
<Project Sdk="Godot.NET.Sdk/4.0.1-rc.1">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="src\game\ui\editorTools" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -16,7 +16,7 @@
|
|||
---
|
||||
|
||||
### 启动项目
|
||||
项目的目录结构如下
|
||||
git仓库的目录结构如下
|
||||
> ├ DungeonShooting_Art (美术资源存放目录)
|
||||
> ├ DungeonShooting_Document (项目帮助文档, 更新日志相关的目录)
|
||||
> └ DungeonShooting_Godot (Godot工程目录)
|
||||
|
@ -25,5 +25,6 @@
|
|||
|
||||
---
|
||||
### 其他
|
||||
开发日志: [开发日志.md](DungeonShooting_Document/开发日志.md)
|
||||
项目看板: https://trello.com/b/a8UGxnTl/dungeonshooting
|
||||
**开发日志:** [开发日志.md](DungeonShooting_Document/开发日志.md)
|
||||
**项目帮助文档:** [帮助文档.md](DungeonShooting_Document/项目帮助文档.md)
|
||||
**项目看板:** https://trello.com/b/a8UGxnTl/dungeonshooting
|
Loading…
Reference in New Issue
Block a user