角色动态变化
在上节课,我们制作了角色的操控与运动 现在,观察我们目前进度的效果 你应该会感觉少了什么
沉思沉思d皮卡丘 说道:
“感觉。。。现在的运动还是太单调了,没有什么反馈
难道,是缺少了。。。特效?”
哎,真聪明~
看看目前的跳跃还很单调,我们需要更好的 跳跃效果
也许,可以在跳跃和落下溅起粒子?
(想象图)
想象一下,感觉还不错 那就让我们一起来制作下落特效吧!
下落特效~
首先我们需要一个粒子造型
并把它加入主角造型~
为了符合主题颜色,我们还是以淡蓝色为主
其次,我们还需要创建一个自制积木
方便以后再克隆特效
得勾选不刷新屏幕,因为需要重复多次克隆造型
然后怎么克隆呢?😏😏😏
我们需要以角色本体来克隆粒子
所以我们克隆前要记下本体的造
所以让我们先创建一个私有变量吧~
记得勾选仅适用于当前角色,也就是变成私有变量
还有克隆体也需要一个私有变量来记录本体发出的任务,
所以再创建一个私有变量
让我们理一理怎么做:
1.记录自己的造型 2.换成需要克隆的造型 3.将“私有变量”改成:要告诉克隆体的信息 4.克隆n次自己 5.换回原来的造型
这样就可以克隆想要的克隆体
并且能传递需要的信息了(如图)
接下来做特效的控制吧
首先,让我们创建 两个变量
因为,我们需要让粒子有 下落 的功能,就像散开一样
所以,就需要 x、y 速度来模拟惯性
这里分享一个小技巧
判断克隆体类型可以用 造型编号 或 造型名称 判断,这样会方便很多
再按照之前说的主角的移动,给粒子加上惯性,
不过这次不用侦测墙体😏
记得在克隆体执行完后删除
目前来看,粒子只会从一个点落下...............
疑惑疑惑d皮卡丘:你确定这样真的可以吗。。。
哎呀,别着急嘛,这不是还没有做好嘛
咳咳,言归正传
要想让他看起来更加的“可以”一点
我们可以通过,让他们的 速度初始值 随机变化
做出 “散开” 的效果(如图)
拖一个克隆积木出来
让我们点击他试试效果看看
OHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!
不过现在看起来还是太生硬了,让我们加入虚像特效!🤩🤩🤩
但粒子下落太快了,我们还需要改改速度
(着急着急d皮卡丘:麻不麻烦啊,简单搞搞好了嘛) (溯老师:不行,我一定要做,要搞就要搞的精益求精!谁也拦不住我!) (害怕害怕d皮卡丘:溯老师别这样,溯老师。。。)
还有更多的随机值(比如大小、位置)
并且位置应该在角色的脚下
粒子在下落过程中也可以缩小...
在经历了九九八十一次迭代后!(都怪皮卡丘!)
然后我们就做好啦!!!!!🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩
最后一步! 将粒子加入到跳跃的代码中!
造型变化~
接下来
让我们再从,角色的造型变化上加些效果吧
此时,就要请出我们的皮卡丘,来帮我们想一些灵感了
(打工人皮卡丘再次上线)
灵感灵感d皮卡丘:
让我想想。。。在角色跳跃的时候,其实是一个快速运动的过程
是不是,可以有些 拉伸的效果?
这样可以体现出一个运动的弹性效果?
嗯,不错,这个项目我投了!
既然要 拉伸的效果
我们就可以用到一个扩展——伸缩
这个扩展可以拉伸角色的 长、宽
首先,让我们创建两个私有变量
顾名思义
这两个变量是用来储存角色的水平与垂直长度的
这时 好奇好奇d皮卡丘 就要问了:
“为什么要储存这些呢?还要多浪费两个变量,溯老师可真不节俭!”
哎,不是不是,我不是那个意思
因为,这个扩展在拉伸角色的时候
是直接拉伸角色整体
这也会同时,将角色的 造型框拉伸变形
所以,这是为了防止角色在拉伸时
直接卡进墙里导致卡出图
(皮卡丘:哦哦,原来是这样,没想到想的这么周到,看来我错怪溯老师了) (溯老师:你今天晚上鸡腿没了。。。)
言归正传
我们需要在侦测 碰到地图 时
切换回 原来的水平、垂直长度
侦测后再切回来
这样在即使我们看到的是角色卡在地图中
但实际上不会真的卡住角色
所以,我们要储存原来的水平、垂直的长度
还要准备切换的代码
再准备好切回判定地图时的长度
流程是:
记录现在造型⬇
切成原造型长度⬇
侦测墙体⬇
切回记录时的长度
所以我们在循环开始时记录并切换原造型长度
注:原造型长度即是100的xy拉伸
在循环底部切回记录的长度
这样不管我们怎么改变垂直与水平的长度
侦测范围都是原造型长度
这时,我们可以把长度改改试试
运行看看
像这样拉伸了 也没问题的话,那就是没问题了(皮卡丘:好一句,一句话)
现在,我们需要让它在拉伸后能自动复原
这里需要了介绍一个缓动方式
这个应该是个常见的方法 不了解的话,看图!
记得是增加水平拉伸 1,计算出当前值和目标值的差距
2,将差距分成四分之一
3,拉伸伸长到离目标值的四分之一
这样我们的拉伸就有了缓动的效果
我相信,只要理解了这个,垂直的也做出来(如图)
最后,把这串积木添加到循环中
下一步,设置角色在什么时候被压缩(目前是在跳跃部分)
(好的压缩)
但这样一来,下面的设置又和上面的设置冲突了
也就是说,上面的设置失去了作用
不过,我们可以发现
下面的设置与,水平储存和垂直储存 这两变量有关的
所以,只要更改变量的值就可以了
(如图)
如果是如下效果,那就没有问题了~
但
我们还需要更多的动态变化
比如。。。角色的拉伸可以和y速度联系(如图)
快去试试效果吧
是不是看起来灵活多了呢,不信你问皮卡丘
喜悦喜悦d皮卡丘:
“哇哦,确实看起来好很多了呢!
不过。。。我们是不是还可以在落下时加入粒子特效呢?”
没错,确实可以!
让我们找到之前的y轴自制积木
通过下图的执行条件可知
因为,角色在执行函数的时候已经是落在地上了
所以,我们只要判断在地上时的速度大小就可以了
并且,只有从一定高度落下,才能触发粒子效果
注意:触发条件判断应该在y速度归零前
最后来看下效果吧!
如果还有哪里有问题的话,可以看看全部代码哦
课堂小结:
本节课
我们加入了粒子特效 和 角色运动时的拉伸动画
增强了视觉反馈
使运动效果更加生动有趣!
恭喜你,已经成功地学会了角色的特效!
你遇到困难摸不着头脑的样子,真的很坚强哦~
——来自皮卡丘的赞扬
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=sumiu-jump/sumiu/Lec01c&type=comment"
title="{跟着溯μ制作平台跳跃游戏 01c}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>