当前位置:网站首页>如何实现横版游戏中角色的移动控制
如何实现横版游戏中角色的移动控制
2022-07-07 21:36:00 【51CTO】
嗨!大家好,我是小蚂蚁。欢迎关注我的微信公众号【小蚂蚁教你做游戏】,学习更多游戏开发原创教程。
今天分享一下横版游戏中角色的移动控制,在一个 2D 的横版游戏中,对于游戏角色的移动控制,其实只需要考虑水平方向上即可。如果角色可以跳跃的话,才需要去考虑垂直方向上的移动,这篇文章只涉及到水平方向上的角色移动控制。
如图,是一个人物角色,我们需要考虑的有两点。
第一点是控制这个角色在水平方向上移动,按向右移动的按钮时,他的位置应该向右移动,按向左移动的按钮时,他的位置应该向左移动。
第二点是控制角色的朝向,向右移动时,角色应该面向右,向左移动时,角色应该面向左。
接下来,我们来到微信小游戏制作工具中,看一下如何实现这样的移动控制功能。
我们先来实现一下利用“摇杆”控制角色的移动。“摇杆”插件位于素材库中,点击“资源管理器”中的“添加素材”按钮,打开素材库。
在素材库的上选择“插件”,找到“摇杆”,添加到项目中。
接着,再添加一个用于控制的角色,可以在素材库中找到“丛林冒险”中的“奔跑人物”(这个素材是有跑步动画帧的),添加到项目中。
添加完成之后,我们的项目就变成了这样。
接下来我们将使用下方的这个摇杆来控制游戏角色的移动。
要实现精灵的移动控制,其实工具已经为我们提供了现成的“行为”了,选中“奔跑人物”,然后在属性区中点击“管理行为”,在打开的行为面板中,开启“方向控制”行为。
行为开启后,回到属性区的下方就可以看到关于“方向控制”行为的一些属性了。这里因为我们只需要控制水平方向上的移动,所以方向选择这里使用“左右”即可。
除此之外,在积木区中的“行为”类别中,也增加了与“方向控制”有关的积木块。
其实,在增加了“摇杆”插件,开启了“方向控制”行为之后,我们就已经完成第一步了,点击预览场景,看一下。
可以看到,这时我们已经可以使用摇杆来控制角色的移动了。
接下来,我们继续完成第二步,就是调整角色的朝向,让角色向右移动时,面向右,向左移动时,面向左。
想要实现这个功能,需要先了解 2 块积木块,第一块就是“方向控制”中的“移动方向”积木块。
调用这个积木块,我们可以获得一个角度值,通过判断当前的角度值,可以知道当前角色是在向哪里移动。
如图,如果当前正在向右移动的话,调用“移动方向”积木块会获得一个 0 的值,向左移动的话,会获得一个 180 的值。
接下来,我们了解一下第二块积木块。位于“外观”中的“将自己的造型水平翻转”。
这个积木块帮助我们解决的就是精灵图片的朝向。
如图,左侧的图片经过“水平”翻转后,就会变成右侧的样子。
在了解完这两块必须的积木块之后,我们直接来看一下实现逻辑,在角色上增加如下的积木块。
这里我们根据“是否向右”的变量的值,以及“移动方向”的数值,来判断何时进行水平翻转。如果当前角色面向右,那么只有在角色向左移动的时候,才应该进行一次翻转,让角色面向左,反之亦然。
再次预览一下,看看移动效果。
根据摇杆的控制,角色会向正确的方向移动,并且会面向正确的方向,这样控制角色移动的功能就完成了,
可能有人会说,这是一个 2D 横版游戏,根本没有必要使用一个包含 4 个方向的摇杆,只需要使用“一左一右”的两个按钮控制方向就可以了。使用两个按钮来控制方向其实也非常的简单。
我们在场景中增加两个按钮,表示左右键。
然后,新建 2 个通知,一个通知“向左移动”,一个通知“向右移动”。
这两个按钮的上的逻辑非常的简单,当我按住按钮时,它们给游戏中的角色发送对应的通知。
最后,来到角色上,接收这两个通知,然后只需要根据通知调用“行为”中的“向左/右移动”积木即可。
最后,我们来预览一下。
这样我们就实现两种移动控制方式,一种使用“摇杆”控制,一种使用“左右按钮”控制,其实“摇杆”插件只不过是自动给我们处理了向左向右的移动而已。
好了,今天的内容就到这里了,对于横版游戏中角色的移动控制技能,你掌握了吗?
嗨!大家好,我是小蚂蚁。欢迎关注我的微信公众号【小蚂蚁教你做游戏】,学习更多游戏开发原创教程。
边栏推荐
- Demon daddy B3 read extensively in a small amount, and completed 20000 vocabulary+
- OpenGL super classic learning notes (1) the first triangle "suggestions collection"
- 你可曾迷茫?曾经的测试/开发程序员,懵懂的小菜C鸟升级......
- Jerry's initiation of ear pairing, reconnection, and opening of discoverable and connectable cyclic functions [chapter]
- Debugging and handling the problem of jamming for about 30s during SSH login
- How can big state-owned banks break the anti fraud dilemma?
- Have you ever been confused? Once a test / development programmer, ignorant gadget C bird upgrade
- Demon daddy A3 stage near normal speed speech flow initial contact
- Reptile combat (VII): pictures of the king of reptiles' heroes
- Backup tidb cluster to persistent volume
猜你喜欢
[JDBC Part 1] overview, get connection, CRUD
Restapi version control strategy [eolink translation]
The function is really powerful!
The maximum number of meetings you can attend [greedy + priority queue]
Use camunda to do workflow design and reject operations
Magic weapon - sensitive file discovery tool
Jerry's about TWS pairing mode configuration [chapter]
你可曾迷茫?曾经的测试/开发程序员,懵懂的小菜C鸟升级......
双塔模型的最强出装,谷歌又开始玩起“老古董”了?
Validutil, "Rethinking the setting of semi supervised learning on graphs"
随机推荐
Tcp/ip protocol stack
Index summary (assault version)
Reptile combat (VII): pictures of the king of reptiles' heroes
Nine degree 1201 - traversal of binary sort number - binary sort tree "suggestions collection"
Tsconfig of typescript TS basics JSON configuration options
[JDBC Part 1] overview, get connection, CRUD
大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?
Display optimization when the resolution of easycvr configuration center video recording plan page is adjusted
EasyCVR配置中心录像计划页面调整分辨率时的显示优化
2022 how to evaluate and select low code development platforms?
Qt编写物联网管理平台39-报警联动
【colmap】稀疏重建转为MVSNet格式输入
Matplotlib drawing interface settings
Win11如何解禁键盘?Win11解禁键盘的方法
TCP/IP 协议栈
Latest Android advanced interview questions summary, Android interview questions and answers
Win11时间怎么显示星期几?Win11怎么显示今天周几?
Devil daddy B1 hearing the last barrier, break through with all his strength
Reinforcement learning - learning notes 9 | multi step TD target
Jenkins user rights management