关键词:精灵旋转,绕圈旋转,转圈道具,旋转道具,游戏开发,教程,微信小游戏制作工具。
嗨!大家好,我是小蚂蚁。
今天分享的这篇是学员提的问题:如何实现让游戏角色拾取一个道具,然后这个道具就会围绕着他旋转,如果再拾取一个,就会变成两个道具围绕着角色转,再拾取变成三个,四个.....
其实这就是一个游戏角色的“呼啦圈”技能,“呼啦圈”是我起的一个名字,看看下面的动图就知道了,这种围绕着游戏角色转圈圈的技能很像是呼啦圈啦!
我们直接制作一个小示例,以此来讲解其中的实现原理。
这个小示例看上去就是这个样子的:
控制小怪兽在游戏中移动,每当它拾取一个火焰的时候,就会增加一个火焰道具围绕着它旋转,再拾取一个时,增加一个旋转的火焰道具,依次类推,并且这些旋转的火焰道具要有均匀的间隔,这样转起圈来才会显得更稳定。
先理论
在正式开始制作之前,我们还是先来了解一下让一个精灵围绕着另一个精灵旋转的原理
如图,蓝色方块围绕着红色方块转动,可以看作是蓝色方块以红色方块的中心为圆点,以固定的距离为半径,在这个圆上移动。
在旋转的过程中,角度 a 是在不断的变化的,可以利用正弦和余弦函数来计算出蓝色方块的位置坐标,这样在循环中通过不停的设置蓝色方块的坐标就能够实现其圆周运动。
又是一个简单的数学知识的应用,不少同学可能又要头疼了,先别疼,克服对数学的恐惧心理,这个真不难,拿出纸和笔动手画一画就会了。关于游戏中最常用的几个数学知识,之前专门写过一篇文章【在这里】,总共就几个知识点,搞明白了,基本上就解决游戏中的一大部分数学问题了。
如何让火焰围绕着小怪兽转圈移动的原理现在已经懂了,接下来如何能够让绕圈的火焰平均分布呢?
如图,我们都知道一圈是 360 度,当有 2 个球的时候,要平均分布的话,它们要间隔 180 度;当有 3 个球的时候,要平均分布的话,要间隔 120 度;当有四个球的话,要平均分配,要间隔 90度,当有 5 个球的时候..... 其实就是平均分配一个圆形的蛋糕嘛!使用 360 度除以平均分配的数量,就能够知道平均的间隔角度了。
再实践
理论知识了解了,下面我们就到微信小游戏制作工具中来实现一下吧!
首先,准备一些素材,布置一下场景。
如图,摇杆用于控制角色的移动,小怪兽是游戏的主角,火焰道具是用于拾取的道具,火焰效果是用于围绕小怪兽转圈的道具。
接着,创建几个全局变量。
全局编号:记录当前创建了几个火焰道具;
全局间隔角度:记录转圈火焰之间的间隔角度;
旋转半径:用于设置转圈火焰与角色间的距离,设置为 300,即火焰会在以角色中心 300 为半径的圆上移动。
首先,看一下“火焰道具”上的积木逻辑。
逻辑很简单,场景启动后,随机的在屏幕上创建 5 个火焰道具。当角色碰到道具(拾取)时,增加转圈火焰的数量,因为数量增加了,所以需要重新计算平均间隔,创建一个新的火焰,然后重新调整所有转圈火焰的角度,最后移除这个被拾取的道具。
接着,我们来看“火焰效果”上的积木逻辑。
火焰效果上有两个自己的“局部变量”,一个用于记录当前的旋转角度,一个用于记录自己的编号。
这里比较难理解的地方可能就是“旋转角度”的计算,我们使用“编号”和“全局间隔角度”来计算出当前火焰的初始旋转角度。举个例子就容易理解了,假设有 3 个火焰,360 / 3 可以得到平均的间隔角度为 120 度,现在我们把 3 个火焰编号 1,2,3,那火焰1的初始角度就是 1*120 = 120 度,火焰2的初始角度就是 2*120 = 240 度,火焰3的初始角度就是 3*120 = 360度,只要按照这三个角度来设置三个火焰的初始角度,然后三个火焰都按照相同的方向和速度移动,那它们旋转起来就会达到平衡。
最后,预览一下,来看看五个火焰的平衡旋转状态。
今天的这篇文章源自我为学员编写的【知识卡片库】,一个知识卡片解决一个问题,搭配一个示例。目前这样的知识卡片已经累计到了 104 个,配合搜索功能,用起来非常方便。这些知识卡片正在帮助越来越多的学员快速的解决问题,以及更好的学习。
【知识卡片库】是学习服务中的一项,更好的课程,更多的学习服务,有良好氛围的学习社群,一年不限次数的咨询,尽在一份小蚂蚁的游戏开发课程服务,欢迎加入,来与一百多位同学,一起学习做游戏。【点击这里】了解课程服务详情。
---
欢迎关注我的微信公众号【小蚂蚁教你做游戏】,每天学点儿游戏开发知识。
也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。
这里是小蚂蚁的小游戏系列,闲暇之余希望能给你带来片刻的放松和愉悦。无需下载安装,微信扫码可以直接玩啦!