我正在尝试向 godot 中的按钮节点添加两个不同的功能。我希望它在左键单击时显示一条消息,并使其附加的精灵在右键单击时消失。有没有办法在 gdscript 中做到这一点?
问问题
1149 次
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 回答