[蓝图] 吃鸡蓝图功能实现

[复制链接]
查看7809 | 回复11 | 2017-11-5 23:06:34 | 显示全部楼层 |阅读模式
本帖最后由 AGE 于 2017-11-6 00:17 编辑

转自我的博客:https://ericsong.org/2017/11/2522.html
大家晚上好,最近吃鸡很火,我也在玩,虽然一直没吃到鸡,作为UE的开发者,正好赶上吃鸡的季节,我就做了一个类似的小功能,目前实现功能如下:
1、当缩圈时间为0后,内圈新位置开始随机生成在大圈内,而大圈则有一个时间来缩放到内圈的位置;
2、当角色处于圈外,生命值持续减少,如果在圈内,生命值不会减少,当角色血量为0时,游戏结束,弹出结束游戏UI;
3、小圈每次都会随机一个位置,并且每次缩圈,小圈的面积也会不断减小;
4、小圈随机的位置,始终不超过大圈,也就是说每次缩圈的随机位置,不会超过大圈;
5、大圈会缓慢的过渡到小圈的大小和位置。

我先说下大概逻辑,文章底部根据我一贯作风附上工程文件,首先来看这个蓝图:

首先有一个大小圈的模型,分别用不同颜色代替,然后2个模型的碰撞类型为Trigger,创建2个碰撞体的begin overlap,如果other actor等于character,则开启一个Health变量,如果end overlap,则flase这个Health变量,那么Tick处默认的知性路线,会有一个分支来检测当前Health是否为True或者False,如果为True,也就是说当前玩家是在圈子里,那么什么都不执行,如果为False,说明角色不在圈子里,那么接下来就是执行减少角色生命。
同时Tick还有个缩圈的逻辑,这个分别是,首先用Delay和DoOnce分别来做一个每次缩圈的时间,Delay为10,然后10秒内执行缩圈逻辑,缩圈的第一步,就是缩小内圈,并且随机内圈的位置,而内圈的位置,永远不能大于外圈的位置,我这里是获取外圈的缩放值,每一个x40,然后Random Float in Range,然后Set内圈的Relative Location,然后每次执行缩圈,内圈的Scale都会除以一个数,最后就是每次缩圈,外圈会缩放到内圈的位置,这里我用了一个Timeline和Lerp实现平滑过渡,通过Lerp,就可以实现把外圈当前的位置和缩放值过渡到内圈的值,大概实现就是这么一个思路。
下面来传一个演示视频:


最后放上工程文件:下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
个人博客 : ericsong.org
疯子恺 | 2017-11-6 08:53:05 | 显示全部楼层
6666666666666666666
人生如戏,全靠演技
回复 支持 反对

使用道具 举报

专业人士 | 2017-11-6 09:45:12 | 显示全部楼层
支持天才大熊猫···
回复 支持 反对

使用道具 举报

letian100 | 2017-11-13 15:37:08 | 显示全部楼层
大吉大利,晚上吃鸡。谢谢熊猫大大
回复 支持 反对

使用道具 举报

dududu_2004 | 2017-11-13 21:37:23 | 显示全部楼层
熊猫大大,晚上吃鸡。
回复 支持 反对

使用道具 举报

395532822 | 2017-11-16 11:50:27 | 显示全部楼层
猫哥的作品先顶再看
回复 支持 反对

使用道具 举报

395532822 | 2017-11-16 11:51:47 | 显示全部楼层
我想改一下吃鸡的人物材质    透视材质      有思路木有??
回复 支持 反对

使用道具 举报

TwilightSparkle | 2017-11-16 12:34:05 | 显示全部楼层
支持一个!
回复

使用道具 举报

吃一个大熊猫 | 2018-5-20 17:08:13 | 显示全部楼层
谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!
回复 支持 反对

使用道具 举报

daba123123 | 2019-4-29 17:22:05 | 显示全部楼层
支持一个!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则