导入造型
要让小猫显示出来,我们先从酷可的小猫派对中添加小猫的造型到背包。
但是一定要从造型页导出,不然你会体验到什么是内存爆炸。(造型实在是太多了)
添加到我们的项目后,将酷可默认的角色的所有造型创建一个文件夹:
这里我使用的名称是“默认小猫”。
初始化
让我们来初始化一下这个角色:
先将这个角色设为左右翻转,保证他的转向是完美的,然后再禁止角色围栏,让所有角色都可以缩放到最大或者最小。
然后移动到最前面是为了保证小猫不被其他东西挡住,移动到0,0是为了让小猫从0,0坐标开始。
然后设置大小为50并显示,就初始化完毕了。
接下来设置一些变量,这些变量的数据可以不用改,基本都是用于物理引擎的,在后面的代码编写中可以遇到。
最后就是设置以下MMO的名字了。
播放动画
接下来我们要为小猫配置动画播放。
让我们创建一个自定义积木,并为其勾选上“运行时不刷新屏幕”
这个积木需要一个参数来指定要播放的动画,我们将其命名为“动画”
接下来我们来修改造型的名称,从酷可的小猫派对中导出的角色造型名称应该是类似“run-01”这种样式的,这里为了方便计数,我们将数字前面的“0”删除,只留下“run-1”
将所有的造型都遵循这个规律改名,到最后,我们的命名已经相当规范了。
但是因为我们创建了文件夹的缘故,所以我们看见的造型名和实际的造型名之间还差一个“[文件夹名]//”。
所以我们在编写代码时也需要考虑这一点。
我们先考虑好我们的算法逻辑,酷可的写法是在造型循环中使用如果嵌套来判断当前播放的动画,然后使用如果判断是否动画播放到最后一帧。
听起来很复杂,所以我们尝试一种更简单的方法,首先是判断该在什么时候播放什么动画,这里我们把他放入物理引擎中,在物理引擎做复杂判断的同时判断动画,这样可以节省很多性能,那么这里就只需要制作播放动画就行了。
播放逐帧动画的核心思想还是往下一帧一帧的播放,所以我们先使用最简单的方法:
直接下一个造型。
然后我们就需要判断我们的造型有没有跳出当前动画,如果跳出了,我们就将造型切换成当前动画的第一帧。
这里我们判断“//”后,“-”前的内容和我们传入
这里我们使用便利积木
通过这样的积木,如果我们切换下一个造型后,造型所属的动画不再是我们需要的动画时,我们就可以重新设置动画,从第一帧开切换:
到此,我们拥有了一套完美的逻辑:
朝向角度
在游戏开始后,小猫不可能一直朝向一个方向,所以我们需要让小猫朝向的方向是由物理引擎的X轴速度决定的,所以我们编写以下代码:
这个代码可以让我们始终朝向我们移动的前方。
接着在这个循环中,播放我们的当前的状态。
操作的屏幕不刷新自定义积木是为了让小猫移动到碰撞箱和其他运算,这个运算会在第五课讲到。
测试效果
有了代码以及造型,接下来我们就需要来测试一下动画播放的效果了。
因为是播放动画,所以我们需要放在一个重复执行里面运行。
这里,我们以播放“run”动画为示例
如果你的效果和我的一样,就代表这一节你已经成功了,那接下来让我们制作小猫的移动!
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=WhiteCat101/baimao/Lec2/01&type=comment"
title="{小猫2-让小猫显示出来}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>