【发布时间】:2021-06-28 13:05:13
【问题描述】:
我正在用 Godot 制作游戏,但我不知道我可以为死亡平面(一个实体穿过并消失或死亡的区域)使用什么代码。
【问题讨论】:
-
听起来你想要的是一个
Area/Area2D使用它的body_entered信号
我正在用 Godot 制作游戏,但我不知道我可以为死亡平面(一个实体穿过并消失或死亡的区域)使用什么代码。
【问题讨论】:
Area/Area2D 使用它的body_entered 信号
要检测 Godot 中的碰撞,您可以使用碰撞对象,这是其中之一:
你给它一个 CollisionShape(或 CollisionShape2D)或 CollisionPolygon(或 CollisionPolygon2D)作为一个孩子。当然,CollisionShape(或 CollisionShape2D)或 CollisionPolygon(或 CollisionPolygon2D)需要有一个配置好的形状。
如果你没有正确设置你的形状,不仅碰撞对象将不起作用,而且场景树中会有一个警告图标告诉你设置形状。 p>
通常玩家头像将是一个 KinematicBody(或 KinematicBody2D),因为它们旨在通过代码移动。
RigidBody(或 RigidBody2D)由物理控制(它会反弹,等等),StaticBody(或 StaticBody2D)不会移动。
因此,这些都不是您想要用来检测玩家何时进入特定区域的东西。为此,您使用 Area(或 Area2D)。
根据放置代码的位置,Area(或 Area2D)将在有东西进入时发出信号 body_entered,在有东西离开时发出 body_exited。将信号连接到您编写代码以处理这种情况的脚本。
顺便说一句,您可以简单地将脚本附加到您的 KinematicBody(或 KinematicBody2D)并在其 _physics_process 检查其垂直坐标以获得快速简单的死亡平面功能。
【讨论】: