新建一个UI,用来展示玩家的血条和耐力条
先大概的画一下
去关卡蓝图里应用一下,再细调
最终弄成了这个样子(略丑)
外观先不管了,先做血条的逻辑
每个percent bar的值都一个绑定,可以通过绑定函数赋值
打开之后重命名一下,写入逻辑
注意,因为HP是1-100,所以变成percent时要乘上0.01
可以正常使用
血条比较简单。接下来处理耐力条。
关于耐力条的想法是,攻击和格挡都会消耗耐力条,耐力条为空时不能进行格挡和攻击。而且我想根据不同的武器设置不同的耐力消耗。
不进行攻击或格挡 2秒后开始逐渐恢复耐力条。
先做空手的,
在Player里新建一个float变量,叫str,用来代表玩家耐力值,写入相同的逻辑
在攻击后进行判断,是否持有武器,如果没有武器(Unarmed),就将耐力值减10
另外两种攻击方式也做相同的运算
然后是格挡,找到格挡伤害计算的蓝图,在后面加上减少耐力值的逻辑,(格挡时减少的耐力值相当于实际承受的伤害,因为格挡时承伤为正常承伤的一半)
测试可以
然后考虑其他几把武器的耐力消耗
因为拳头已经是10了
匕首设为8,长剑设为15,长矛设为20,战戟设为25(暂定)
在武器的数据表中添加这一项,命名为AttackCost
补上有武器时候的逻辑。
另,因为想实现冲刺攻击的时候消耗额外的耐力,所以把这部分逻辑移到了,动画通知那里。
这是冲刺攻击的时候,拳击额外消耗5耐力,有武器时消耗体力为正常时候的1.5倍。
然后就是做限制了,当耐力值<=0时不可进行攻击和格挡。
在攻击前加一个判断
在格挡前加一个判断
嗯,测试也可行。
(耐力槽一空,就不能进行攻击和格挡了)
哦对了,把射线的预览都关掉。
最后是耐力值的恢复
当脱战3s后开始恢复体力。
脱战分为两个方面,一个是不挨打,一个是不打别人。
两个都为True时才能够恢复。
用CanRecover1来代表挨打,当3s内不挨打就设为true,一旦挨打就设为false。这俩布尔值默认都可以设为true。
利用之前做的Gate,跟视角恢复一个节奏,3s不挨打,门开,耐力值和视野就开始恢复
挨打就设为false
此处为DamagePass后继逻辑的尾部。
用Can Recover2来表示我们不打别人。
一旦有攻击的动作,就设为false
延迟3s后,才设为true。
恢复的有点慢,0.1调到0.3.同时必须当我们耐力值<100时才会增加。