当前位置:网站首页>如何实现横版游戏中角色的移动控制
如何实现横版游戏中角色的移动控制
2022-07-07 21:36:00 【51CTO】
嗨!大家好,我是小蚂蚁。欢迎关注我的微信公众号【小蚂蚁教你做游戏】,学习更多游戏开发原创教程。
今天分享一下横版游戏中角色的移动控制,在一个 2D 的横版游戏中,对于游戏角色的移动控制,其实只需要考虑水平方向上即可。如果角色可以跳跃的话,才需要去考虑垂直方向上的移动,这篇文章只涉及到水平方向上的角色移动控制。

如图,是一个人物角色,我们需要考虑的有两点。
第一点是控制这个角色在水平方向上移动,按向右移动的按钮时,他的位置应该向右移动,按向左移动的按钮时,他的位置应该向左移动。
第二点是控制角色的朝向,向右移动时,角色应该面向右,向左移动时,角色应该面向左。
接下来,我们来到微信小游戏制作工具中,看一下如何实现这样的移动控制功能。
我们先来实现一下利用“摇杆”控制角色的移动。“摇杆”插件位于素材库中,点击“资源管理器”中的“添加素材”按钮,打开素材库。

在素材库的上选择“插件”,找到“摇杆”,添加到项目中。
接着,再添加一个用于控制的角色,可以在素材库中找到“丛林冒险”中的“奔跑人物”(这个素材是有跑步动画帧的),添加到项目中。

添加完成之后,我们的项目就变成了这样。

接下来我们将使用下方的这个摇杆来控制游戏角色的移动。
要实现精灵的移动控制,其实工具已经为我们提供了现成的“行为”了,选中“奔跑人物”,然后在属性区中点击“管理行为”,在打开的行为面板中,开启“方向控制”行为。

行为开启后,回到属性区的下方就可以看到关于“方向控制”行为的一些属性了。这里因为我们只需要控制水平方向上的移动,所以方向选择这里使用“左右”即可。

除此之外,在积木区中的“行为”类别中,也增加了与“方向控制”有关的积木块。

其实,在增加了“摇杆”插件,开启了“方向控制”行为之后,我们就已经完成第一步了,点击预览场景,看一下。

可以看到,这时我们已经可以使用摇杆来控制角色的移动了。
接下来,我们继续完成第二步,就是调整角色的朝向,让角色向右移动时,面向右,向左移动时,面向左。
想要实现这个功能,需要先了解 2 块积木块,第一块就是“方向控制”中的“移动方向”积木块。

调用这个积木块,我们可以获得一个角度值,通过判断当前的角度值,可以知道当前角色是在向哪里移动。

如图,如果当前正在向右移动的话,调用“移动方向”积木块会获得一个 0 的值,向左移动的话,会获得一个 180 的值。
接下来,我们了解一下第二块积木块。位于“外观”中的“将自己的造型水平翻转”。

这个积木块帮助我们解决的就是精灵图片的朝向。

如图,左侧的图片经过“水平”翻转后,就会变成右侧的样子。
在了解完这两块必须的积木块之后,我们直接来看一下实现逻辑,在角色上增加如下的积木块。

这里我们根据“是否向右”的变量的值,以及“移动方向”的数值,来判断何时进行水平翻转。如果当前角色面向右,那么只有在角色向左移动的时候,才应该进行一次翻转,让角色面向左,反之亦然。
再次预览一下,看看移动效果。

根据摇杆的控制,角色会向正确的方向移动,并且会面向正确的方向,这样控制角色移动的功能就完成了,
可能有人会说,这是一个 2D 横版游戏,根本没有必要使用一个包含 4 个方向的摇杆,只需要使用“一左一右”的两个按钮控制方向就可以了。使用两个按钮来控制方向其实也非常的简单。
我们在场景中增加两个按钮,表示左右键。

然后,新建 2 个通知,一个通知“向左移动”,一个通知“向右移动”。

这两个按钮的上的逻辑非常的简单,当我按住按钮时,它们给游戏中的角色发送对应的通知。


最后,来到角色上,接收这两个通知,然后只需要根据通知调用“行为”中的“向左/右移动”积木即可。

最后,我们来预览一下。

这样我们就实现两种移动控制方式,一种使用“摇杆”控制,一种使用“左右按钮”控制,其实“摇杆”插件只不过是自动给我们处理了向左向右的移动而已。
好了,今天的内容就到这里了,对于横版游戏中角色的移动控制技能,你掌握了吗?
嗨!大家好,我是小蚂蚁。欢迎关注我的微信公众号【小蚂蚁教你做游戏】,学习更多游戏开发原创教程。

边栏推荐
- Jerry's power on automatic pairing [chapter]
- Ad domain group policy management
- Open source OA development platform: contract management user manual
- NVR硬盤錄像機通過國標GB28181協議接入EasyCVR,設備通道信息不顯示是什麼原因?
- Prometheus remote_ write InfluxDB,unable to parse authentication credentials,authorization failed
- Programming mode - table driven programming
- Jerry's about TWS channel configuration [chapter]
- Display optimization when the resolution of easycvr configuration center video recording plan page is adjusted
- Restore backup data on persistent volumes
- South China x99 platform chicken blood tutorial
猜你喜欢

Ad domain group policy management
![Restapi version control strategy [eolink translation]](/img/65/decbc158f467ab8c8923c5947af535.png)
Restapi version control strategy [eolink translation]
![Jerry's test box configuration channel [chapter]](/img/d4/fb67f5ee0fe413c22e4e5cd5037938.png)
Jerry's test box configuration channel [chapter]

Debugging and handling the problem of jamming for about 30s during SSH login

Use camunda to do workflow design and reject operations

Cv2.resize function reports an error: error: (-215:assertion failed) func= 0 in function ‘cv::hal::resize‘

The new version of onespin 360 DV has been released, refreshing the experience of FPGA formal verification function

反爬通杀神器

【JDBC Part 1】概述、获取连接、CRUD

L'enregistreur de disque dur NVR est connecté à easycvr par le Protocole GB 28181. Quelle est la raison pour laquelle l'information sur le canal de l'appareil n'est pas affichée?
随机推荐
Use camunda to do workflow design and reject operations
Node:504 error reporting
Win11如何解禁键盘?Win11解禁键盘的方法
Codemail auto collation code of visual studio plug-in
[open source] Net ORM accessing Firebird database
Meta force force meta universe system development fossage model
三元表达式、各生成式、匿名函数
MIT6.S081-Lab9 FS [2021Fall]
Can I open a stock account directly online now? Is it safe?
Talk about relational database and serverless
The function is really powerful!
Embedded development: how to choose the right RTOS for the project?
Goal: do not exclude yaml syntax. Try to get started quickly
UVA 12230 – crossing rivers (probability) "suggested collection"
QT compile IOT management platform 39 alarm linkage
ISO 26262 - considerations other than requirements based testing
Actual combat: sqlserver 2008 Extended event XML is converted to standard table format [easy to understand]
Jerry's test box configuration channel [chapter]
The difference between NPM uninstall and RM direct deletion
强化学习-学习笔记9 | Multi-Step-TD-Target