UE4_fUI_血条 耐力条

新建一个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时才会增加。

 

 

 

 

 

 

 

posted @ 2020-06-12 00:35  vantablack  阅读(1211)  评论(0编辑  收藏  举报