实现横版游戏中角色的跳跃控制是如何实现的?

简介: 实现横版游戏中角色的跳跃控制是如何实现的?

在写完上一篇[如何实现横版游戏中角色的移动控制]后,有朋友留言:再来个跳跃的。所以,这篇就来了,这篇教程中我将带大家来了解两种实现角色跳跃的方法,一种是利用"物理"实现跳跃控制,另外一种是使用工具为我们提供的“平台角色”行为,来实现角色的跳跃。


利用物理实现角色的跳跃控制


我们继续使用上一节教程中的移动示例,在移动的基础上,给角色增加跳跃行为。



首先,选中要增加跳跃行为的角色,为其开启“物理”行为。



开启后,可以在图层属性的下方看到与“物理”有关的属性。“能够倾倒”默认是开启状态,这里我们把它关掉,因为我们不需要角色倾倒。



另外,在积木区的“行为”中,你会看到与“物理”有关的一大堆的积木块。先不要慌,要实现跳跃功能,其实我们只需要理解并使用其中的两块积木块就可以了。


第一个积木块“设置全局的重力加速度大小和方向”,重力加速度即物体由于重力的作用从空中下落的加速度(不懂的话请自行搜索关键词“重力加速度”,补上初中的物理知识),这里我把重力加速大小设置为了 98(这个数值越大,起跳和下落的速度越快),方向 -90度(垂直向下)。


第二个积木块“设置力的大小和方向”,这个积木块的作用就是我们给游戏中的物体一个指定方向指定大小的力,例如当前角色要向上跳,那么我就给他一个向上的力。


你可以把跳跃想象成这样的一个过程,我们在角色的脚底下狠狠的向上踹了一脚,角色被踹的飞了起来(受到了垂直向上的力),但是因为受到的重力的作用,他向上飞的会越来越慢,直到达到最高点,转而开始下落,最终又落回到地面上。



如图,就是角色的逻辑积木,在之前的移动控制逻辑的基础上,我们只增加了 2 块与“物理”有关的积木块,就实现了跳跃功能。


在跳跃按钮上,当精灵被“按下”时,向角色发送一个“跳跃”的通知即可。



最后,我们为角色的脚下增加一个地面,因为角色受到物理影响,如果脚下没有地面的话,由于重力的作用就会掉下去。所以需要有一个地面,才能够“脚踏实地”。


这里需要注意,在为地面增加物理行为后,“物理”属性中的类型要设置为“静态刚体”,因为地面是不会动的。


最后,预览一下,来看看移动加上跳跃的效果。



利用平台角色行为实现角色的移动和跳跃控制


第二种控制移动和跳跃的方式就是直接使用小游戏制作工具为我们提供的“平台角色”行为这一工具,只需要简单的配置,就可以实现角色的移动和跳跃控制了。


创建一个新场景,这里我们重新布置一下。



如图,包含一个可以控制的角色,一些可以跳跃的平台,以及用于控制移动和跳跃的 3 个按钮。


首先,选中需要控制的角色,在属性区中点击“管理行为”按钮,为其开启“平台角色”行为。



开启了这个行为之后,游戏的角色就具备了一个与“平台跳跃”游戏有关的各种各样的能力了,包括跑动,跳跃,二段跳等等。


与平台角色有关的各种属性可以在“属性区”下方的行为中调整。



看一下,角色身上的积木逻辑。



其实逻辑很简单,监听了 3 个事件,不论是移动和跳跃,我们都是直接使用“平台角色”中提供的对应的积木块。因为需要调整精灵的朝向,所以这里我们使用了一个变量“是否面向右”,根据这个变量的值来判断角色的造型是否需要进行“水平”翻转。


对于 3 个按钮上的积木逻辑就更简单直白了,使用对应的事件,触发时给角色发送对应的通知即可。



最后,为地面以及各种可跳跃的平台开启“固体”行为。另外,如果你希望创建一个可向上穿透的平台,可以选择开启“跳跃穿透”行为。



最终,预览一下,看看第二种跳跃方式。



好了,今天的内容就到这里了,掌握了角色的控制和跳跃技能,你就能够发挥想象力做出一些有意思的东西啦!做个平台跳跃游戏?还是做个小的跑酷游戏呢?期待你的游戏作品。

相关文章
|
3月前
|
开发者 图形学 C#
深度解密:Unity游戏开发中的动画艺术——Mecanim状态机如何让游戏角色栩栩如生:从基础设置到高级状态切换的全面指南,助你打造流畅自然的游戏动画体验
【8月更文挑战第31天】Unity动画系统是游戏开发的关键部分,尤其适用于复杂角色动画。本文通过具体案例讲解Mecanim动画状态机的使用方法及原理。我们创建一个游戏角色并设计行走、奔跑和攻击动画,详细介绍动画状态机设置及脚本控制。首先导入动画资源并添加Animator组件,然后创建Animator Controller并设置状态间的转换条件。通过编写C#脚本(如PlayerMovement)控制动画状态切换,实现基于玩家输入的动画过渡。此方法不仅适用于游戏角色,还可用于任何需动态动画响应的对象,增强游戏的真实感与互动性。
94 0
|
5月前
|
图形学
【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果,复制粘贴即用
【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果,复制粘贴即用
363 0
|
6月前
|
存储 C# 开发工具
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
61 0
|
6月前
|
索引
消除游戏中图标下落的原理和实现
消除游戏中图标下落的原理和实现
46 1
|
6月前
横版游戏中角色的移动控制是如何实现的?
横版游戏中角色的移动控制是如何实现的?
55 0
|
6月前
|
存储 算法 Serverless
连线消除游戏的原理和实现
连线消除游戏的原理和实现
90 0
HMI-33-【运动模式】补上油量表和水温表
上一篇,以为是做了一个收尾,写了灯光控制面板和底部的信息栏,但是,有位眼见的小伙伴`江山壹角`,直接不给我面子,说我的水温表和油量表不会动。截图位置,我记仇哈。
|
存储 运维 监控
一个开关就让服务网格变快 —— 概述篇
作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月
一个开关就让服务网格变快 —— 概述篇
【unity2D横板】【sunnyland】角色的跳跃
【unity2D横板】【sunnyland】角色的跳跃
如何实现横版游戏中角色的跳跃控制
在写完上一篇[如何实现横版游戏中角色的移动控制]后,有朋友留言:再来个跳跃的。所以,这篇就来了,这篇教程中我将带大家来了解两种实现角色跳跃的方法,一种是利用"物理"实现跳跃控制,另外一种是使用工具为我们提供的“平台角色”行为,来实现角色的跳跃。 利用物理实现角色的跳跃控制
97 0