实现效果

思路

分两个进度条重叠放,
一个在前面显示深红的真血条,但是背景条完全透明;
一个在背后显示淡红的跟随血条,背景条不透明。

如果 真血条减少:
----跟随血条等待一会后,循环减到真血条百分比。
如果 真血条增加:
----跟随血条直接跳到真血条位置。

实现

我习惯用Lua,所以用Lua演示,思路是一样的。
首先创建一个UserWidget,主要需要两个血条,hp在前,hpBack在后:

hp的背景条透明:

hpBack的进度条半透明:

核心代码

local cls = {hpPercent = 1, hpBackPercent = 1,--每秒变化量hpBackAdd = 0.3,HPBackLoopFunc = nil,-- 缓存变量hpBackLastChangeTime = 0,
}--循环让跟随血条过渡到真血条
function cls:OnHPBackLoop()local again = trueif self.hpBackPercent > self.hpPercent thenself.hpBackPercent = self.hpBackPercent - self.hpBackAdd * (GF:Now() - self.hpBackLastChangeTime)self.hpBackLastChangeTime = GF:Now()endif self.hpBackPercent <= self.hpPercent thenagain = falseself.HPBackLoopFunc = nilself.hpBackPercent = self.hpPercentendself.hpBack:SetPercent(self.hpBackPercent)return again
end-- 根据dataModel更新widget显示
function cls:Update(model)self.hp:SetPercent(model.hpPercent)self.endurance:SetPercent(model.endurancePercent)self.hpPercent = model.hpPercentif self.hpBackPercent <= self.hpPercent thenself.hpBackPercent = self.hpPercentself.hpBack:SetPercent(self.hpBackPercent)elseself:DelayCall(0.3, function() --延迟调用if self.HPBackLoopFunc == nil thenself.hpBackLastChangeTime = GF:Now()self.HPBackLoopFunc = self:LoopCall(0.01, false, function()     --循环调用return self:OnHPBackLoop()end)endend)end
end--[[DelayCall、LoopCall函数定义
]]--return cls

【虚幻引擎】实现类LOL缓慢扣血血条相关推荐

  1. 参考虚幻引擎UObjectBase类源代码定义出 UObject对象成员的偏移量

    参考虚幻引擎UObjectBase类源代码定义出自己的 UObject对象成员函数偏移量 源代码路径: Engine\Source\Runtime\CoreUObject\Public\UObject ...

  2. 几种将将虚幻引擎内容流送到多个平台的推流方案比较

    将虚幻引擎内容流送到多个平台,比较 HTML5.WebGL 和像素流送.Raystreaming. 简介 在开发联网用户体验时,如何共享内容始终影响着协作.生产和发布中的关键决策.假如用户在消费并与共 ...

  3. 虚幻引擎(16)-简易血条

    文章目录 前言 其他介绍 上一篇笔记 下一篇笔记 预览 动态预览图 蓝图预览 一.角色蓝图 [1]. Blood变量 [2]. 掉血功能 二.血条控件 三.关卡蓝图 前言 条的创建,和简单的掉血,需要 ...

  4. 【UE4 虚幻引擎 学习笔记一】常见的基类(二) Actor、Pawn、Character、Controller

    Actor Actor在官方文档的里意思是:Actor类是游戏中一切实体Actor的基类.其实这更像是一句废话,Actor作为一个常用基类,要明白一个问题: 什么时候该继承Actor类? 问:一个实体 ...

  5. 虚幻引擎之使用LoadClass加载蓝图类

    虚幻引擎之使用LoadClass加载蓝图类 文章目录 虚幻引擎之使用LoadClass加载蓝图类 一.前言 二.探究 2.1 LoadClass 2.2 HashObject 参考文章 一.前言 看序 ...

  6. 如何用虚幻引擎4和C++开发游戏?斯坦福相关课程上线

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如何用虚幻引擎4开发游戏? 现在,斯坦福的相关课程上线啦. 代码.视频.PPT.课后作业一应俱全,还会教你如何在游戏中设置基于行为树的AI, ...

  7. 虚幻引擎C++开发学习(二)上

    上一章的内容都还是基础知识,游戏逻辑较为简单,语法也比价简单,主要的目的还是基础,所以没有过多的记录. 这一章会构建一个小游戏(关于关卡构建的部分这里省略掉了,是一个简单的房屋构建和光照布置,这些内容 ...

  8. UE4入门学习笔记——纪念学习虚幻引擎满一周年

    UE4入门学习笔记 前言: 今天是正式学习ue4一周年.一年前的今天,我结束了PBR流程的学习,怀揣着对游戏制作的热爱,正式开始学习ue4,继续追寻儿时的那个大厂梦.谁也没想到,一年后的今天,我会在T ...

  9. 虚幻引擎学习课程大纲

    UE4十二周排课计划 第一周 周目标: 了解虚幻引擎在行业中的应用,熟悉ue4制作CG影视和游戏的流程.下载引擎以及配套软件.熟悉ue4的编辑界面,能够使用ue创建自己的项目,将以往制作的模型或下载的 ...

最新文章

  1. 使用Netty编写一个简单的群聊系统
  2. 怎样进行前后台交互_vivo X60 Pro评测,蔡司镜头+OriginOS+微云台+三星1080强强组合...
  3. EMC测试中骚扰源头的寻找
  4. mysql复杂条件判断_MySQL复杂where条件分析
  5. python中plot是什么意思_python中的plot函数是什么?
  6. php复制重叠字符串,PHP如何在复制字符串中的每个字符后“重复”字符串(恢复字符串)...
  7. 长沙 · 中国1024程序员节盛况空前,500 万程序员线上线下引爆星城
  8. [实验手册]用2500路由器做自动安装实验
  9. WIN10 edge浏览器阻止文件下载解决方法
  10. 联想小新锁屏壁纸怎么换_联想_ThinkPad|ThinkCentre|ThinkStation服务与驱动下载_常见问题...
  11. win11窗口桌面管理器突然很吃内存?
  12. Ubuntu20.04 搭建repo + gitlab的代码管理系统
  13. mysql 删除恢复_MySQL之delete 忘加where条件误删除恢复
  14. 常用的Sql命令之alter
  15. 微信公众号只能设置两个网页授权域名的解决方案
  16. 曙光服务器amd芯片,AMD六核体验 曙光Ar-H服务器首发评测.docx
  17. ARM架构-arm基础
  18. 哈工大《大数据计算基础》期末考试2021
  19. php mysql英文资料,Sams Teach Yourself PHP MySQL 英文CHM下载_PHP教程
  20. 一个简易的TCP服务器程序(将收到的字符发回给客户端)

热门文章

  1. kubeadm部署k8s集群最全最详细
  2. Latex编辑论文常用package
  3. 《杜拉拉升职记》的体会-勤奋的重要性
  4. 论文笔记|A Block-sorting Lossless Data Compression Algorithm
  5. 星起航:抖音小店线上货源渠道
  6. rog主板php,强劲的扩展能力 - 华硕ROG Zenith Extreme主板评测:地表最强X399 - 超能网...
  7. face_recognition IndexError: list index out of range
  8. 无刷直流电机最强科普(收藏版)
  9. 并发编程五:java并发线程池底层原理详解和源码分析
  10. html5图片邀请函,html5,邀请函.doc