Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D与StaticBody2D碰撞)

按照下图场景树所示构造一个场景:

  • 节点的名称即为节点类型
  • 红色方框分别对应着每个CollisionShape2DShape(都是RectangleShape2D)的范围
    在这里插入图片描述

注意:
为了避免不必要的性能消耗,RigidBody以及RigidBody2D默认是不开启碰撞检测的,所以需要碰撞检测的话必须做两件事:

  • Contact Monitor设为true(开启碰撞检测)
  • Contact Roported设为一个大于0的值(返回碰撞结果最大数量)

在这里插入图片描述

下面是"RigidBody2D"上脚本的内容

“Body.gd”
把回调方法 collision_callback链接到RigidBody2D的信号body_entered

extends RigidBody2D

func _ready():
	connect("body_entered",self,"collision_callback")

func collision_callback(node):
	print("我是一个:" + name +  ",我撞上了一个" + node.name)

在这里插入图片描述

输出结果

我是一个:RigidBody2D,我撞上了一个StaticBody2D
发布了359 篇原创文章 · 获赞 800 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/104804192