如何实现游戏角色的“呼啦圈”技能?

简介: 如何实现游戏角色的“呼啦圈”技能?

嗨!大家好,我是小蚂蚁。


今天分享的这篇是学员提的问题:如何实现让游戏角色拾取一个道具,然后这个道具就会围绕着他旋转,如果再拾取一个,就会变成两个道具围绕着角色转,再拾取变成三个,四个.....


其实这就是一个游戏角色的“呼啦圈”技能,“呼啦圈”是我起的一个名字,看看下面的动图就知道了,这种围绕着游戏角色转圈圈的技能很像是呼啦圈啦!


我们直接制作一个小示例,以此来讲解其中的实现原理。


这个小示例看上去就是这个样子的:

控制小怪兽在游戏中移动,每当它拾取一个火焰的时候,就会增加一个火焰道具围绕着它旋转,再拾取一个时,增加一个旋转的火焰道具,依次类推,并且这些旋转的火焰道具要有均匀的间隔,这样转起圈来才会显得更稳定。


先理论


在正式开始制作之前,我们还是先来了解一下让一个精灵围绕着另一个精灵旋转的原理。

如图,蓝色方块围绕着红色方块转动,可以看作是蓝色方块以红色方块的中心为圆点,以固定的距离为半径,在这个圆上移动。


在旋转的过程中,角度 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度,只要按照这三个角度来设置三个火焰的初始角度,然后三个火焰都按照相同的方向和速度移动,那它们旋转起来就会达到平衡。


最后,预览一下,来看看五个火焰的平衡旋转状态。

相关文章
|
3月前
|
存储 前端开发 安全
后端技术在现代软件开发中的关键角色
本文深入探讨了后端技术在现代软件开发中的核心地位和作用。通过分析后端技术的定义、主要功能及其与前端的协同工作方式,阐述了后端对于构建高效、稳定且安全的软件系统的重要性。同时,文章还探讨了当前流行的后端技术趋势,如微服务架构和云计算等,并展望了后端技术未来的发展方向。
|
18天前
|
存储 自然语言处理 关系型数据库
元宇宙游戏系统开发规则说明及源码示例
元宇宙游戏是一个多用户参与的虚拟世界,支持社交、交易、娱乐等活动。本文介绍了其开发规则,包括目标设定、用户管理、虚拟世界构建、社交互动、经济系统等内容生成及数据分析等关键环节,并提供了简化的用户注册和登录功能代码示例。
|
4月前
|
存储 前端开发 JavaScript
高级前端必备技能
【8月更文挑战第17天】高级前端必备技能
48 1
|
7月前
|
人工智能 算法 API
百川智能发布角色大模型 ,零代码复刻角色轻松满足游戏领域定制需求
百川智能于2024年1月9日推出Baichuan-NPC角色大模型,优化了角色知识和对话能力,提升游戏AI角色的真实感。同时,公司发布了零代码角色创建平台,允许游戏厂商通过简单描述快速定制角色,降低开发成本和提高效率。Baichuan-NPC通过大量针对性训练,解决了角色扮演的“非拟人化”问题,增强了角色一致性。此外,百川智能的角色创建平台结合搜索增强知识库,提供高自由度的角色定制,支持实时调优和一键代码复制,简化了开发流程,已获得创梦天地、完美世界游戏等合作伙伴的认可。
97 2
百川智能发布角色大模型 ,零代码复刻角色轻松满足游戏领域定制需求
|
7月前
|
存储 C# 开发工具
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
76 0
|
7月前
|
安全 AndFix 区块链
区块链3D元宇宙游戏系统开发规则玩法/步骤指南/源码项目
Developing a blockchain metaverse 3D game system is a complex and innovative process that requires comprehensive consideration of blockchain technology, game design and development, and virtual reality (VR). The following is the general process for developing the system:
|
7月前
横版游戏中角色的移动控制是如何实现的?
横版游戏中角色的移动控制是如何实现的?
60 0
如何实现游戏角色的“呼啦圈”技能?
关键词:精灵旋转,绕圈旋转,转圈道具,旋转道具,游戏开发,教程,微信小游戏制作工具。 今天分享的这篇是学员提的问题:如何实现让游戏角色拾取一个道具,然后这个道具就会围绕着他旋转,如果再拾取一个,就会变成两个道具围绕着角色转,再拾取变成三个,四个.....其实这就是一个游戏角色的“呼啦圈”技能,“呼啦圈”是我起的一个名字,看看下面的动图就知道了,这种围绕着游戏角色转圈圈的技能很像是呼啦圈啦
119 0
如何实现横版游戏中角色的移动控制
今天分享一下横版游戏中角色的移动控制,在一个 2D 的横版游戏中,对于游戏角色的移动控制,其实只需要考虑水平方向上即可。如果角色可以跳跃的话,才需要去考虑垂直方向上的移动,这篇文章只涉及到水平方向上的角色移动控制。
93 0
|
存储 API C#
猿创征文 |【游戏开发实战——2D项目1 - Ruby‘s Adventure】控制游戏角色移动(1-2)
猿创征文 |【游戏开发实战——2D项目1 - Ruby‘s Adventure】控制游戏角色移动(1-2)
203 0
猿创征文 |【游戏开发实战——2D项目1 - Ruby‘s Adventure】控制游戏角色移动(1-2)

热门文章

最新文章