Godot 4 -拖放和捕捉问题



对godot和dev总体来说是个新手,很抱歉我的无能。https://i.stack.imgur.com/BEa7y.jpg

我试图做一些看起来相当简单的事情(我正在学习在游戏开发中永远不会正确)抓取一个对象(在本例中是"connector")比如USB男性),当我把那个物体放到一个"区域"时;(一个"input"USB母盘):物体会进入该区域,并从鼠标中释放出来。我尝试这样做的方式是通过在输入上创建一个area2D,具有碰撞形状(图1)。然后,我从这个区域发送一个body_entered(body:Node2D)信号到Connector"节点。(图二)

在连接器脚本中,在fun_on_area_2d_body_entered (body)"我只是尝试了不同的方法,但似乎没有任何效果。所以我试着加上"print('hello')"看看是否"碰撞"发生了什么。但是,当我抓住连接器并将其置于输入位置时,没有任何打印。

是我的脚本有问题还是我发送信号的方式有问题?

extends Node2D
var selected = false
var rest_point 
var input_pos
func _on_area_2d_input_event(_viewport, _event, _shape_idx):
if Input.is_action_just_pressed("click"):
selected = true
func _ready():
rest_point = global_position
input_pos = get_node("root/Level/input")
func _physics_process(delta):
if selected:
global_position = lerp(global_position, get_global_mouse_position(), 25*delta)
else:
global_position = lerp(global_position, rest_point, 10*delta)
func _input(event):
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:
selected = false

func _on_area_2d_body_entered(_body):
#rest_point = input_pos.global_position
print('hello')

我试着把我想要进入区域的特定节点的名称放在2d中,像这样:func _on_area_2d_body_entered(连接器):

但这并没有改变什么。

我现在基本上只是想从信号中得到响应。好像信号坏了。

我发现我的错误了!"body_entered"只能使用Physicsbody2D或Tilemap我的连接器是一个简单的Node2D,所以即使它有一个碰撞形状,它也不会触发信号。

相关内容

  • 没有找到相关文章

最新更新