Godot Engine 学习笔记 Area2D

Area2D

  • Area2D
    • 简要说明
    • 成员函数
    • 信号
    • 成员变量
    • 枚举
    • 说明
    • 成员函数说明
    • 使用

Area2D

以下为我对于官方文档的翻译以及使用情况,3.0版本的文档
Area2D官方文档
继承: CollisionObject2D < Node2D < CanvasItem < Node < Object
类型: Core

简要说明

用于检测和2D物理影响的2D区域。

成员函数

返回类型 函数
bool get_collision_layer_bit ( int bit ) const
bool get_collision_mask_bit ( int bit ) const
Array get_overlapping_areas ( ) const
Array get_overlapping_bodies ( ) const
bool overlaps_area ( Node area ) const
bool overlaps_body ( Node body ) const
void set_collision_layer_bit ( int bit, bool value )
void set_collision_mask_bit ( int bit, bool value )

信号

  • area_entered ( Object area )

当另一个区域进入时发出。

  • area_exited ( Object area )

当另一个区域退出时发出。

  • area_shape_entered ( int area_id, Object area, int area_shape, int self_shape )

当另一个区域进入时发出,报告哪些形状重叠。

  • area_shape_exited ( int area_id, Object area, int area_shape, int self_shape )

当另一个区域退出时发出,报告哪些形状重叠。

  • body_entered ( Object body )

当 PhysicsBody2D 对象进入时发出。

  • body_exited ( Object body )

当 PhysicsBody2D 对象退出时发出

  • body_shape_entered ( int body_id, Object body, int body_shape, int area_shape )

当 PhysicsBody2D 对象进入时发出,报告哪些形状重叠。

  • body_shape_exited ( int body_id, Object body, int body_shape, int area_shape )

当 PhysicsBody2D 对象退出时发出,报告哪些形状重叠。

成员变量

  • float angular_damp - 对象在此区域停止旋转的速率。表示每秒损失的角速度。值范围从 0 (无阻尼)到 1 (最大阻尼)。
  • String audio_bus_name - 区域音频总线的名称。
  • bool audio_bus_override - 如果为 true 区域的音频总线覆盖默认音频总线。默认值: false
  • int collision_layer - 区域的物理层。可碰撞对象可以存在于32个不同层中的任何一个中。如果对象A位于对象B可扫描的任何层中,或者对象B位于对象A可扫描的任何层中,则检测到接触。参阅 collision_mask
  • int collision_mask - 此区域可扫描的物理层,用于确定碰撞检测。
  • float gravity - 区域的重力强度(范围从-1024到1024)。该值乘以重力矢量。这对改变重力而不改变方向很有用。
  • float gravity_distance_scale - 点重力的衰减因子。数值越大,距离重力点越远,所受重力点的吸引越小。
  • bool gravity_point - 如果为 true 从一个点(通过设置 gravity_vec )计算重力。参阅 space_override 。默认值: false
  • Vector2 gravity_vec - 区域的重力矢量(未标准化)。如果重力是一个点(参阅 is_gravity_a_point),这将是一个引力点。
  • float linear_damp - 对象在此区域停止移动的速率。表示每秒损失的线速度。值范围从 0 (无阻尼)到 1 (最大阻尼)。
  • bool monitorable - 如果为 true 其他监测区域可以检测到这个区域。默认值: true
  • bool monitoring - 如果为 true 该区域检测到进出的物体或区域。默认值: true
  • float priority - 区域的优先级。首先处理更高优先级的区域。默认值: 0
  • SpaceOverride space_override - 此区域内重力和阻尼计算的覆盖模式。请参阅 SPACE_OVERRIDE_ * 常量以获取值。

枚举

enum SpaceOverride

  • SPACE_OVERRIDE_DISABLED = 0 - 此区域不影响重力/阻尼。
  • SPACE_OVERRIDE_COMBINE = 1 - 此区域将其重力/阻尼值添加到目前为止计算的任何值(按 priority 顺序)。
  • SPACE_OVERRIDE_COMBINE_REPLACE = 2 - 此区域将其重力/阻尼值添加到目前为止计算的任何值(按 priority 顺序),忽略任何较低优先级区域。
  • SPACE_OVERRIDE_REPLACE = 3 - 此区域替换任何重力/阻尼,甚至是默认值,忽略任何较低优先级区域。
  • SPACE_OVERRIDE_REPLACE_COMBINE = 4 - 此区域替换目前为止计算的任何重力/阻尼(按 priority 顺序),但会继续计算其余区域。

说明

检测 CollisionObject2D 节点重叠,进入或退出的2D区域。也可以改变或覆盖局部物理参数(重力,阻尼)。

成员函数说明

  • bool get_collision_layer_bit ( int bit ) const

返回Layer表上的各个位的情况。表示其他区域是否会在给定层上与此区域发生碰撞。

  • bool get_collision_mask_bit ( int bit ) const

返回Mask表上的各个位情况。表示该区域是否会与给定层上的其他区域发生碰撞。

  • Array get_overlapping_areas ( ) const

返回重叠的 Area2D 的列表。出于性能原因(碰撞都在同一时间处理),此列表在物理步骤中被修改一次,而不是在移动对象后立即修改。考虑使用信号代替。

  • Array get_overlapping_bodies ( ) const

返回重叠的 PhysicsBody2D 列表。出于性能原因(碰撞都在同一时间处理),此列表在物理步骤中被修改一次,而不是在移动对象后立即修改。考虑使用信号代替。

  • bool overlaps_area ( Node area ) const

如果为 true 给定区域与 Area2D 重叠。请注意,移动对象后,此测试的结果不会立即生效。为了提高性能,重叠列表每帧更新一次,并在物理步骤之前更新。考虑使用信号代替。

  • bool overlaps_body ( Node body ) const

如果为 true 给定的物体与 Area2D 重叠。请注意,移动对象后,此测试的结果不会立即生效。为了提高性能,重叠列表每帧更新一次,并在物理步骤之前更新。考虑使用信号代替。

  • void set_collision_layer_bit ( int bit,bool value )

设置/清除Layer表上的各个位。这使得只有一个区域进/出的区域更容易。

  • void set_collision_mask_bit ( int bit,bool value )

设置/清除Mask表上的各个位。这使得选择扫描区域更容易。

使用

创建一个引力朝上的区域

  • 先创建场景
    Godot Engine 学习笔记 Area2D_第1张图片
    Godot Engine 学习笔记 Area2D_第2张图片
    Ball 是一个 RigidBody2D 节点 (RigidBody2D 节点需要创建 CollisionShape2D 或 CollisionPolygn2D 子节点)。
    在这里插入图片描述
  • 为 Area2D 节点设置属性
    Space Override 属性选择 Replace ,这表示此 Area2D 区域替换任何重力/阻尼,甚至是默认值,忽略任何较低优先级区域。
    Gravity Vec 属性是表示引力方向,设为 (0,-1) 数值表示方向向上,且 (0,-1) 和 (0,-10) 方向虽然相同,但是 (0,-10) 产生的引力更强(如果 Gravity Point 选中,这将表示为一个引力点)。
    Gravity 属性是引力强度,默认是98
    Godot Engine 学习笔记 Area2D_第3张图片
  • 运行
    Godot Engine 学习笔记 Area2D_第4张图片

你可能感兴趣的:(Godot,Engine)