#1.判断是否重叠区域 var areas = get_overlapping_areas() return areas.size() > 0 func get_push_vector():
#定义重叠区域 和 软碰撞移动方向 var areas = get_overlapping_areas() var push_vector=Vector2.ZERO #如果重叠 if is_colliding(): var area = areas[0] #移动方向 push_vector =area.global_position.direction_to(global_position) push_vector = push_vector.normalized() return push_vector
2 Bat使用软碰撞
1 2 3 4 5 6 7 8
@onready var soft_collsion: Area2D = $softCollsion