• 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时才会增加。

     

  • 相关阅读:
    Study Plan The FortyEighth Day
    原码与补码
    【innoDB】加锁案例分析
    【InnoDB】事务基础知识
    了解 CAP
    妙用位运算
    Go学习笔记
    .NET Hot Reload热重载
    .NET 6 中的 dotnet monitor
    C# 实现多线程的同步方法详解
  • 原文地址:https://www.cnblogs.com/reluctante1/p/13096950.html
Copyright © 2020-2023  润新知