本轮主要优化视觉上的效果, 并且完善模板房间创建的功能, 主要工作内容有:
ActivityMark
创建单位的流程, 并且引入了ActivityExpression
表达式, 用于创建单位并初始化属性, 也可以在表达式中指定多个id并让ActivityMark
从中随机挑选创建单位. 添加单位创建特效, 修复ActivityMark
在初始房间存在的bugEnemyMark
, 用于在指定位置创建敌方单位, 并且支持配置手中的武器Role.OnPutBackMount()
函数来设置角度和位置Task
和SignalAwaiter
本轮工作重点在于编写文档以及完善模板房间配置, 最近这段时间本职工作比较忙, 所以开发进度相比上一轮稍微放缓, 主要工作内容如有:
DungeonRoomTemplate
在编辑器中draw函数绘制层级过低和ctrl
+s
有时不触发保存bugtileMaps
文件夹下, 现在在tileMaps
下会有个分组文件夹, 用于放置同一层的地牢房间, 再到组文件夹下分了Battle
,Inlet
,Outlet
,Boss
,Reward
,Shop
,Event
这几个文件夹, 用于分类房间类型, 并加入房间权重, 权重越大, 越容易随机到该房间ActivityMark
添加生成物体高度和垂直速度配置, 支持在一个矩形区域内随机位置生成物体, 并优化ActivityMark
性能, 现在不是开始游戏就进入场景树, 而是玩家进入当前房间并开始执行标记时再放入场景树中GameApplication.DesignatedRoom
中指定地牢生成的房间, 这样地牢就只会在这个指定的随机池中抽取房间, 方便调试房间AiBulletSpeedScale
, Ai使用该武器发射的子弹速度缩放比; AiAmmoConsumptionProbability
, Ai使用该武器消耗弹药的概率本周主要完成Godot编辑器插件扩展, 目的为了更加方便为游戏添加内容, 主要工作内容如有:
automation
面板移到Godot编辑器2D
/Script
这一栏, 并重命名为Tools
Tools
面板中添加创建UI的功能, 输入UI名称点击创建就能自动创建一个空的UI场景和相配套UI代码, 编辑器监听用户对于UI的改动, 一旦有变化, 就会自动重新生成UI基础代码, 这样做的好处是一旦有节点重命名或者移动位置, 用到这个节点的代码就会编译报错. 每个UI都分好了文件夹, 所有和当前UI有关的代码都应该被放到同一个UI文件夹下Tools
面板中添加创建地牢预制房间的功能, 现在不需要自己在节点管理器中添加DungeonRoomTemplate
了, 并且节点管理器已经移除DungeonRoomTemplate
RoomConfig.json
, 现在不是所有数据都存在这个配置里了, 这里面值放一些基础数据和房间详细配置的路径, 需要房间详细信息再进行动态加载Uibase
添加协程支持, 功能和ActivityObject
中的协程一样ActivityObject
中的投抛系统, 加入ActivityObject
加入海拔高度字段, 并且自动计算精灵和阴影位置, 当海拔高度大于0时会自动做自由落体, 想向上抛物的话也只需要设置垂直方向的速度就行, 现在的Throw()
函数仅仅只是对于设置海拔高度和垂直速度的一个封装为了尽早能够完成核心功能, 对外展示demo, 三月上旬开发提速, 主要的工作内容有:
TileMap.GetCellTileData()
函数上, 调用该函数在关闭游戏释放资源时会导致读取到已经被释放的内存, 但是卡死的问题还是有极小概率发生, 目前情况未知ActivityObject
子类实例化流程, 现在通过在ActivityObject
子类上加[RegisterActivity(id, prefabPath)]
标记来注册物体, 并调用ActivityObject.Create(id)
来创建实例ActivityMark
), 通过标记可以指定生成的对象, 位置, 所在波数和延时生成时间, 也可以继承ActivityMark
来扩展物体生成操作, 例如子类EnemyMark
, 标记生成敌人, 并且可以指定初始武器与弹药量UiManager
管理Ui, 目前UiManager
还有部分功能尚未完成经过数十天开发, 已经完成自定义房间功能, 支持配置连接门生成区域, 而不是像之前一样整个矩形外框都能生成门, 并且还做了在编辑器中可视化编辑连接们生成区域的功能, 所有的自定义房间放在resource/map/tileMaps
, 路径下, 使用automation
面板下的打包地牢配置
即可将所有房间的配置信息整合到RoomConfig.json
文件内, 方便代码获取房间数据, 在编辑器中添加DungeonRoomTemplate
节点, 用于创建模板房间.
第一篇开发日志, 后面会更加频繁更新日志
用了大半年事件完成完成项目基础架构搭建, 已经包含的功能有:
ActivityObject
, 可以在编辑器中找到节点ActivityObjectTemplate
来快速创建物体模板