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