Godot基础之碰撞检测

📅 2026/7/3 18:07:54 👁️ 阅读次数 📝 编程学习
Godot基础之碰撞检测

在Godot中有四个节点必须要加入collision shape才能使用,分别是Area2D,CharacterBody2D,StaticBody2D,RigidBody2D


Area2D:提供物体检测和响应,当有个物体进入它的范围时,它会发出信号(area_enter)

CharacterBody2D:提供物体检测但没有实际反应,所有行为都在代码中实现

StaticBody2D:是指静态的,不会移动的物体,它参与碰撞检测,但不会因碰撞而移动

RigidBody2D:这是实现模拟二维物理的节点。你无法控制RigidBody2D,但你可以对它施加力(重力、冲量, 等等)物理引擎则计算由此产生的运动。


以上节点都继承了CollisionObject2D。

CollisionObject2D有一个经常用到的属性就是layer和mask。

layer是设置物体的层级,默认大家都在第一层;mask是用来检测层级。

例如:在player节点中,我将player设置在第五层,它可以被处在第一层和第二层的物体扫描到,检测到。

而这个第五层将在我的关卡转换时起作用,下图中我将关卡转换节点的mask设置在第五层,也就是说当有一个物体也处在第五层时,就会被检测到。

mask是扫描对应层的物体,layer是接受mask扫描的物体