0

我正在尝试向 godot 中的按钮节点添加两个不同的功能。我希望它在左键单击时显示一条消息,并使其附加的精灵在右键单击时消失。有没有办法在 gdscript 中做到这一点?

4

1 回答 1

1

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

我不确定您是否只是将按钮添加为单击后做出反应的区域。如果是这样,您还可以为您的精灵添加一个 Area2D(或 3d)和一个碰撞形状。使用碰撞形状,您可以将 Area2D 节点的“input_event”信号链接到 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”。一般来说,使用输入映射而不是硬编码所有键和按钮总是一个好主意。

我希望这会有所帮助。

最好的问候和快乐的编码。

于 2017-07-10T21:29:48.247 回答