游戏开发中的物理之使用Area2D

简介: 游戏开发中的物理之使用Area2D

介绍


Godot提供了许多碰撞对象以提供碰撞检测和响应。试图确定要为您的项目使用哪个选项可能会造成混淆。如果您了解每个问题的工作原理和优点和缺点,则可以避免这些问题并简化开发。在本教程中,我们将查看 Area2D节点并显示一些如何使用它的示例。


注意

本文档假定您熟悉Godot的各种物理机构。请先阅读物理简介。

什么是面积?


Area2D定义2D空间的区域。在此空间中,您可以检测到其他 CollisionObject2D节点重叠,进入和退出。区域还允许覆盖本地物理属性。我们将在下面探讨这些功能。


区域属性


区域具有许多属性,可用于自定义其行为。


image.png


前八个属性用于配置区域的物理替代行为。我们将在下面的部分中介绍如何使用它们。


监测和监视的是用来启用和禁用区域。


在“碰撞”部分中,可以配置区域的碰撞层和蒙版。


“音频总线”部分使您可以覆盖该区域中的音频,例如在播放器移动时应用音频效果。


请注意,Area2D扩展了CollisionObject2D,因此它还提供了从该类继承的属性,例如input_pickable。


重叠检测


Area2D节点最常见的用途可能是用于接触和重叠检测。当您需要知道两个物体已触摸但不需要物理碰撞时,可以使用区域来通知您该联系人。


例如,假设我们正在为玩家捡硬币。硬币不是坚固的物体-玩家不能站立或推动它-我们只希望它在玩家触摸时消失。


这是硬币的节点设置:

image.png



为了检测重叠,我们将适当的信号连接到Area2d上。使用哪种信号取决于播放器的节点类型。如果播放器在另一个区域,请使用area_entered。但是,假设我们的播放器是一个KinematicBody2D (因此是一种CollisionObject2D类型),那么我们将连接 body_entered信号。


注意

如果您不熟悉使用信号,请参阅信号的介绍。

public class Coin : Area2D
{
    public void OnCoinBodyEntered(PhysicsBody2D body)
    {
        QueueFree();
    }
}


现在我们的玩家可以收集硬币了!


其他一些用法示例:


这些区域非常适合击中并造成伤害的子弹和其他射弹,但不需要其他任何物理过程,例如弹跳。

在敌人周围使用较大的圆形区域来定义其“检测”半径。当玩家在该区域之外时,敌人无法“看到”它。

“安全摄像机”-在具有多个摄像机的较大级别上,将区域附加到每个摄像机并在播放器进入时激活它们。

有关在游戏中使用Area2D的示例,请参见您的第一个游戏。


区域影响


区域节点的第二个主要用途是改变物理学。默认情况下,该区域不会执行此操作,但是您可以使用“空间覆盖”属性启用它。当区域重叠时,将按优先级顺序进行处理(优先级较高的区域将首先处理)。有四个替代选项:


合并-区域将其值添加到到目前为止已计算的值。

替换-替换物理属性的区域,优先级较低的区域将被忽略。

组合替换-该区域将其重力/阻尼值添加到到目前为止计算出的所有内容(按优先级顺序),而忽略任何较低优先级的区域。

Replace-Combine-替换该区域替换到目前为止计算出的所有重力/阻尼,但继续计算其余区域。

使用这些属性,可以创建具有多个重叠区域的非常复杂的行为。


可以覆盖的物理属性是:


重力-区域内重力的强度。

Gravity Vec-重力方向。此向量不需要进行标准化。

线性阻尼-物体停止移动的速度-每秒损失的线速度。

角阻尼-物体停止旋转的速度-每秒损失的角速度。

点重力


重力点属性使您可以创建“引子”。 该区域的重力将根据Gravity Vec属性给出的点进行计算。 值是相对于Area2D的,因此例如使用(0,0)会将对象吸引到区域的中心。


例子


下面所附的示例项目包含三个区域,说明了物理覆盖。


20201217114808276.gif


您可以在此处下载该项目:  using_area_2d.zip


目录
相关文章
游戏开发中的物理之使用KinematicBody2D(02)
游戏开发中的物理之使用KinematicBody2D
260 0
游戏开发中的物理之使用KinematicBody2D(02)
|
5月前
|
Python
物理力学:基本概念、原理及计算机模拟实践
物理力学:基本概念、原理及计算机模拟实践
|
存储 安全 网络安全
禅与计算机维修艺术之fusion computer虚拟机存储恢复
禅与计算机维修艺术之fusion computer虚拟机存储恢复
禅与计算机维修艺术之fusion computer虚拟机存储恢复
UGUI系列-列表添加物理效果(Unity3D)
最近要做一个滑动列表界面,美术的效果图为用绳子连接的短板,上面附带信息,看图的感觉似乎添加点物理效果(让绳子不规则的带动短板晃动)会显得更加真实,于是为这个界面加了些物理效果,感觉还不错,特此记录下。
|
存储
游戏开发中的物理之使用KinematicBody2D(01)
游戏开发中的物理之使用KinematicBody2D
229 0
游戏开发中的物理之使用KinematicBody2D(01)
游戏开发中的物理介绍(1)
游戏开发中的物理介绍
171 0
游戏开发中的物理介绍(1)
游戏开发中的物理之布娃娃系统
游戏开发中的物理之布娃娃系统
319 0
游戏开发中的物理之布娃娃系统
游戏开发中的物理介绍(2)
游戏开发中的物理介绍
167 0
游戏开发中的物理之刚体
游戏开发中的物理之刚体
131 0
带你读《计算机组成与体系结构:性能设计(英文版·原书第10版)》之三:A Top-Level View of Computer Function and Interconnection
本书以Intel x86体系结构和ARM两个处理器系列为例,将当代计算机系统性能设计问题与计算机组成的基本概念和原理紧密联系起来,介绍了当代计算机体系结构的主流技术和最新技术。本书作者曾13次获a得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。