微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测 Godot 中的碰撞?

如何解决如何检测 Godot 中的碰撞?

我正在用 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 检查其垂直坐标以实现快速简单的死亡平面功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。