本文正在参加「金石计划」
Hello 大家好,在上一篇教程中我给大家演示了如何用 UE4 的蓝图去构建一个背包并支持拖拽丢弃道具的功能,那咱们今天就继续这个系列的教程,本篇的主题是去给玩家构建一个生命值与体力值的 HealthBar,当玩家遇到陷阱时会掉血,施展魔法时会损耗体力值,服用背包中的生命药水和魔法药水的时候,会恢复血量和体力值。
资源准备
首先,需要准备玩家血条和体力值的资源,我这里使用的效果图如下:
大家可以通过关注我来获取下载链接,回复关键字 “血条”。
UI 设计
在编辑器里找到 UI 文件夹,然后右键,选择 User Interface 创建 Widget Blueprint,命名 UI_HPBar, 如图:
并把血条,体力值,和头像这几个图片资源导入到 Texture2D 文件夹中,如图:
双击打开,然后添加控件 Image, Process Bar 用于显示头像以及血条和体力值。
接下来去配置 Process Bar 样式,血条咱们就设计成红色吧,配置如下:
体力值就设计成蓝色,配置如下:
然后 Image 控件上配置头像图案:
调整控件的位置,如图:
最后将 HealthBar 显示,打开角色蓝图,然后在 Begin Event 事件上将其添加到视图上:
掉血与体力值减少
本篇教程设置了一个简单的魔法陷阱,玩家只要靠近触发碰撞就会导致受到伤害并掉血,接下来先去实现一个魔法陷阱。
新建一个 Blueprint class 选择 AActor, 然后命名为 Setup_BP 双击打开后添加一个 Sphere Collision , radius 设置为 100; 再添加一个 ParticleSystem,并设置粒子效果,这里我使用了一个比较酷炫的龙卷风,最终效果如图:
接下来就是给其添加碰撞事件,选中 Sphere Collision,然后在右侧添加 OnComponentBeginOverlap 和 OnComponentEndOverlap 事件。
添加一个变量 IsHurt 来区分角色是否发生了碰撞。
如果角色一直站在陷阱中,则血量会一直减少,除非他跳出陷阱,这里就还需要用到 Event Tick 这个事件,最终构造的蓝图如下:
解释一下:
- 当 isHurt 为 true 时,玩家的生命值会每次减去 0.1 ,因为 ProcessBar 的值为 0-1
- 增加定时器每隔0.2s 减去0.1,不然玩家的血条的会一下子扣完
- 重新给玩家的血条赋值最新的数据
接下来,将 Setup_BP 拖入到场景中去,运行测试一下:
当玩家碰到龙卷风的时候,血条工作正常。
下来当施展魔法时该如何扣除魔法值呢!也很简单,咱们继续往下讲。
打开角色蓝图,并创建一个自定义事件 ConsumeMagic 作为消耗魔法的函数,并定义input 的参数 consume 为 float 类型,然后构建其蓝图如下:
当调用该事件的时候,输入需要扣除的魔法值,则玩家的魔法条就会减少。于是我们就在施展魔法的蓝图逻辑中去调用 ConsumeMagic,如图所示:
施展远程魔法
原地施展魔法
运行下游戏,如图:
可以看到体力值会随着施展魔法而减少。
回血与体力值增加
接下来继续实现回血与补充体力值的功能。角色背包中的道具可以用来给玩家回血与补充体力,之前我们在背包中加了消耗道具的功能,只要在这功能上继续增加一点逻辑就可以实现这部分的功能了。
假设道具 Health_BP 和 Misc_BP 是回血的,道具 Regen_BP 和 RedJuice_BP 是补充体力值的。
打开 UI_Inventory 蓝图,新增一个函数 Healing, 如图:
输入参数定义如图:
构建 Healing 函数的蓝图逻辑,如下:
解释如下:
- 根据输入参数的类型,通过 Switch 节点来区分是回血还是补充体力
- 通过 Switch 的分流来给角色的生命值和体力值更新数值然后再刷新HealthBar
最后,在 UseItems 事件的蓝图逻辑里去调用 Healing 函数,如图:
运行游戏,看下效果:
玩家血条和体力值不足的情况下,使用背包里的道具血条和体力值就得到了补充。
获取工程
关注我的公号 HelloWorld杰少 回复关键字 'RPG' 获取游戏工程文件 获取完整的工程。
结尾
好了,本篇教程主要实现了角色的血条和体力值的显示,扣血扣体力值以及回血增加体力值的功能,你学会(废)了吗?
往期文章:
- UE4 RPG游戏实战开发(八):背包道具拖拽丢弃
- UE4 RPG游戏实战开发(七):道具捡起与丢弃
- UE4 RPG游戏实战开发(六):背包系统
- UE4 RPG游戏实战开发(五):近战魔法
- UE4 RPG游戏实战开发(四):远程魔法
- UE4 RPG游戏实战开发(三):连招攻击
- UE4 RPG游戏实战开发(二):装备武器
- UE4 RPG游戏实战开发(一)
- UE4 如何用命令行来打包你的游戏
- UE4:来为我们的角色制作一个血条吧
- 使用 Google Breakpad 来助力解决程序崩溃
- UE4 多人游戏服务器探索
- 使用虚幻引擎自动化工具实现自动化部署
- 如何在 UE4 中制作一扇自动开启的大门
- 如何在 UE4 中用代码去控制角色移动
- 如何给 UE4 场景添加游戏角色
- UE4:Android 平台开发实践指南
- UE4 开发避坑指南(持续更新)
请你喝杯 ☕️ 点赞 + 关注哦~
- 阅读完记得给我点个赞哦,有👍 有动力
- 关注公众号--- HelloWorld杰少,第一时间推送新姿势
最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~**