7月计划
本月将完成第一章的剧情并且在 8 月 1 日发布测试版。
更新记录
7月1日
- 战斗状态窗口更新角色数据
- 战斗状态的 HP/SP 条
- 血条/攻击条/SP 条重置
血条重置
设计血条的时候没计划好,一部分是 UI(角色状态),一部分是精灵(敌人血条)。
然后现在要把这两个整合在一起,就重写了基本方法,兼容两种的存在。
都是因为没计划好的锅,一顿折腾血条系统竟然重写了三遍……
记录一个小问题
定义血条的父类 SpriteBar
,子类攻击条 SpriteAttackBar
继承 SpriteBar
。
在角色类中需要创建攻击条,如下:
1 | protected SpriteBar atkBar; |
SetCharacter
方法是在 SpriteAttackBar
类中定义的,但是这里却死活调不出来。
刚开始还以为是文件没保存成功或者 IDE 编译失败了……
尝试了各种方法之后恍然大悟,原来变量定义的类型是 SpriteBar
(也就是父类),因此在获取对象的组件时:
1 | atkBar = atkBarObj.GetComponent<SpriteAttackBar>(); |
这里其实就是类的「多态」,变量 atkBar
是父类 SpriteBar
类型,自然无法调用子类特有方法。
只要修改一下定义的变量类型就解决了:
1 | protected SpriteAttackBar atkBar; |
本来想偷懒少打几行代码,结果犯了低级错误……真不应该。
7月2日
目标选择面板
临时做了一个简单的选择面板。
普通攻击
选择普通攻击可以对单个敌人造成伤害。
普通攻击实际上包含了几个动作的组合:
① 选择敌人,② 计算伤害,③ 弹出伤害数字和攻击动画,④ 行动结束。
虽然功能已经完成了,但是这里有一些需要改进的地方。
- 伤害数字需要增加一个“动态”效果
- 两次行动需要间隔一定的时间,而不是一个角色行动结束之后立即轮到下一个角色操作
- 目标选择的时候,没有明确提示当前选择的是哪个对象(只有名字而已)
伤害字体动画
首先解决第一个问题,纯静态的伤害字体没有打击感。
为伤害字体增加一个简易的动态效果,看起来好点了:
行动间隔
不论是玩家行动还是敌人行动,都需要有一定的间隔时间。
当角色行动结束时,增加 1s 的等待时间:
TODO:间隔时间以后可以在菜单中进行设置,分为“高速”与“正常”,方便喜欢快节奏的玩家。
选中高亮
为了让玩家知道自己选择的目标是哪个,需要加上高亮的效果。
这里就先用透明度的变化作为标志,选中效果如下:
击退效果
当目标受到普通攻击伤害的时候,为了表现出“打击感”,要让目标向后挪动一小步。
除此之外还要让目标显示受伤动作动画,但是现在没有相应的素材,就简单的实现击退效果:
今天的工作大概就是这样了,战斗系统的雏形基本完成。
明天再弄下敌人的 AI,战斗系统就完成了,比起计划还提前了一天!
明天和后天还可以顺便把战斗结算 UI 也做完,以及进入战斗时的过场动画处理。
总体来说,制作十分顺利,下周就可以开始制作菜单相关的 UI 了。
战斗系统的优化方案
我们目前只有两个人,Cee 又要上班,没办法做出全动态的战斗系统。
然后进在 Steam 上面闲逛,发现了一款值得参考的游戏,可以实现纯静态图也能实现很强的打击感。
以目前我们的时间和能力来说,全战斗系统的压力太大了。
因此本作的战斗将使用全静态图,如此一来需求的素材也少了,Cee 的压力得以减轻。
如下所示:
可以用不同的动作和画面效果来弥补静态战斗的不足。
参考的游戏来源:Phantom Rose - Steam 页面
7月3日
敌人行动
敌人会随机挑选一名玩家控制的角色进行攻击。
这样就可以与玩家“有来有回”了:
目标死亡
当 HP 被削减至 0 的时候,目标就会进入「濒死状态」。
这个时候就直接让目标淡出消失:
胜利 UI
当全部的敌人都死亡时,弹出战斗胜利的 UI。
战败 UI
当玩家控制的角色全部濒死,则弹出战败的 UI。
胜败判定
添加逻辑判定以及战斗实测:
敌人数据库
每个敌人都有 HP、攻击力、防御力等属性。
为了实现可视化,我直接使用 unity 自带的一个数据类型:Scriptable
。
目前敌人的数据库只有敌人的基本属性,等后续的系统逐渐完善,还可以增加掉落物、战斗逻辑等等。
如果用 RPG Maker 系列来比喻的话,就是敌人的数据库设置:
角色数据库
同理,玩家控制的角色也有各种属性,也需要建立这么一个数据库。
还有道具数据库、装备数据库……凡是在游戏中有基本属性的,都需要建立一个数据库。
存档 UI
战斗系统已经完成了,能够提前一天也是意料之外的事情。
所以趁这个机会我把 Cee 之前已经设计好的存档 UI 也完成了。
现在的状态超级好!!!
维持这个状态,本月完成完整版的第一章毫无压力!
要保证健康的状态就得按时睡眠不熬夜,明早起来继续完成读档系统。
7月4日
- 存档界面获取本地存档列表
- 将数据写入本地存档(存档功能)
- 将本地存档加载到游戏(读档功能)
- 确认框
- 提示框
- 主菜单优化
7月5日
昨天晚上眼睛有点痛,躺在床上休息,结果就这么睡着了……
今天眼睛还是感觉很干涩,所以打算只做一些简单的工作。
早上把存档系统整合到主菜单里,结果发现弹窗的时候会有问题,计划明天把菜单系统重构一遍。
昨天 Cee 完成了主菜单装备界面的 UI,但是时间比较晚就没来得及完成。
今天的工作就只是把装备菜单的 UI 搭起来,等明天菜单系统重构之后在完成装备系统的实际功能。
今天主要还是休息为主……应该是近期用眼过度了,估计今晚睡一觉明天就能好了。
7月6日
眼睛好了一点,今天继续干活。
昨天被一个滚动视图的问题卡住了,结果没把装备界面的 UI 做完。
今天早上找了一些相关的资料,顺利解决了。
之前 Cee 反馈说在公司的电脑看不见博客的图片,所以后面发的图片会改用新的图床。
新的图床据说是多路分发的,应该不会再出现访问不了的情况了。
除了完成界面的 UI 之外,今天开始要制作角色系统和装备系统,因此剩下的工作都是设计数据格式之类的,就没什么好发的了。本周会完成这两大系统,然后下周开始制作第一章剧情的内容,本月计划有 20 天来制作剧情相关的流程,从时间长度来看,如果能保持良好的状态,做完整章的剧情应该不难。
第一版的 UI 都是极简风格的,目的是为了加快制作的速度,等全部完成之后我们会回头优化这些地方,我们之前就是因为一开始就想做出完美的效果结果花了太多时间,以至于一直没能做出来,这次也是吸取了经验,对于不影响游戏流程的地方全部采用最简单的形式。
为了赶进度,系统和 UI 可以简陋一点,但剧情不会马虎。
只要保持这种「极简风格」的 UI,Cee 那边的压力会减少很多。
在保证完成主线剧情的情况下,我们就会开始回头优化这些简陋的地方。
保证游戏能按时完成,这是我们目前最优先考虑的事情。
7月7日
祸不单行,眼睛好点了,结果又感冒了……
闷热的天气实在是难受啊!!!
趁早上状态还好的时候,搭建了新的菜单系统的基础。
新的菜单系统要兼容各种不同的菜单,比如选项有很多种类型:横排的、竖排的以及网格的。
而且还要保证多个菜单之间可以正常联动,估计得到明天才能完成了,现在状态不是很好,继续躺床上了……
7月8日
满血复活,继续开工!!!
今天测试了新版菜单的基本功能,然后把主菜单和存档菜单改成了新版菜单系统并且整合在一起。
7月9日
遇到一个小问题,在弹出确认框并且点下确定的时候,如果再次弹出新窗口,原本的栈结构就会出现问题。
玩家打开存档进行保存的时候,如果在一个原本有存档的位置进行保存,就会弹出覆盖提示的确认窗口,然后玩家点击确定会再弹出一个保存成功的弹窗。发现在弹出保存成功的时候,按下方向键上级菜单(存档界面)仍然可以进行操作。
这里其实是为了省事把弹窗、确认框都统一成了「菜单」的一部分,但是弹窗和确认框跟菜单有区别:
为了赶进度这个小问题就先不处理,人为避免在确认框后还弹出提示框即可。
接着要把之前所有的窗口系统都改成新版的菜单。(工作量有点大)
7月10日
昨天没全部改完,今天继续昨天的进度。
- 战斗中操作面板
- 战斗中目标选择面板
- 战斗中技能选择面板
- 场景中事件选择面板
至此,旧版的菜单已经全部改成新版菜单系统了。
还发现了场景淡入时可以打开菜单的 BUG。
这里是因为我把事件的淡入和场景的淡入搞混了,结果测试了半天……
要构建一个完整的游戏系统工程量很大,以前写的代码不一定都还能记得住,只有遇到的时候才能想起来了。
菜单整改完毕之后就开始制作角色界面了,角色界面比较复杂,包括:队伍系统、角色系统、装备系统。
而这些系统又包括:角色数据、装备数据、队伍数据。
先完成数据结构的设计,接着再一一实现各个系统。
- 角色数据
- 装备数据
- 存档中的队伍数据
然后是角色界面,这个界面属于菜单,但是不同在于有竖直和水平两种操作。
水平方向的按键可以切换角色,竖直方向按键控制选中的装备。
7月11日
今天陪父母去打疫苗,顺便自己也打了。原本以为会有点疼,结果一点感觉都没有。回到家之后还是有一点不良反应的,打了疫苗的左手感觉使不出力气,原来没什么感觉但到了下午就开始有点疼了。头也有点晕乎乎的,浑身乏力还有一点恶心的反应,应该是身体跟疫苗不太适应,或者是宅家里太久没锻炼的缘故。
因为状态不是很好,所以就先做一些能完成的简单工作,例如录入本地语言的文本。
为了方便管理全局的变量,再写个单独的类保存常量,以此建立映射关系。
都是一些体力活,除此之外,还完成了一些小细节部分。例如图片的动态调节大小,如果 Cee 提供的素材大小不一致的话,可以用一个类似“中间件”的结构把图片调整为合适的大小。
前几天才说自己状态很好,结果这几天要么是生病了,要么是打完疫苗有不良反应,难道是因为前几天激昂的状态大反弹了?!今天还是好好休养一下把状态调节好了,避免影响下周的工作。虽然躺在床上休息,但是也可以考虑剧情该如何修改,下周开始就要正式制作剧情部分了。
7月12日
20天的倒计时开始,本周正式制作剧情部分。
预计 8 月 1 日发布第一章的测试版。
完成了角色菜单切换角色以及计算人物属性,并且重新讨论了场景素材的规格。
7月13日
确定场景素材规格,将由 Cee 最终决定。
角色菜单里还剩下装备系统没做完,今天也完成了。
明天开始重新绘制第一章第一幕的场景,正式进入剧情制作。
7月14日~7月16日
第一章第一部分剧情改动,以及录入剧情文本,场景制作。
标题画面的制作。
7月17日~7月25日
第一章逃亡篇剧情完成。