有没有办法将多个函数添加到godot中的按钮节点

时间:2017-07-06 18:53:30

标签: game-engine gdscript

我正在尝试将两个不同的函数添加到godot中的按钮节点。我希望它在左键单击时显示一条消息,并使其附加的精灵在右键单击时消失。有没有办法在gdscript中执行此操作?

1 个答案:

答案 0 :(得分:0)

我不确定您是否可以使用Button类区分左键单击和右键单击。但是,有多种简单的方法可以让精灵以你想要的方式做出反应。

我不确定你是否只是将Button添加为点击后作出反应的区域。如果是这样,您还可以为精灵添加Area2D(或3d)和碰撞形状。使用碰撞形状,您可以将Area2D节点的" input_event" -signal链接到Sprite脚本(或您在此场景中使用的任何脚本)。链接信号的最简单方法是通过编辑器左下方的信号功能区。

编辑器会自动创建一个新功能,您可以编写所需的任何行为:

func _on_Area2D_input_event( viewport, event, shape_idx ):    
    if event.is_action('left_click'):
        print("Left click message")
    elif event.is_action('right_click'):
        self.hide() # hides the node which owns the script...

在使用is_action函数之前,您必须定义' left_click'和' right_click'到编辑器首选项下的输入映射。通常,使用输入映射而不是对所有键和按钮进行硬编码总是一个好主意。

我希望有所帮助。

祝福和编码愉快。