2017-07-06 85 views

回答

0

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

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

编辑器会自动创建一个新的功能,你可以编写你想喜欢的任何行为:

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... 

之前,你可以用你需要定义“left_click”和“right_click”的输入地图is_action功能根据编辑的喜好。通常,使用输入映射而不是硬编码所有按键和按钮总是一个好主意。

我希望有帮助。

此致敬礼和开心编码。

+0

我认为这个想法比我在做的更好,但是'event.is_action'会抛出一个错误,说它找不到标识符“event”。我不知道我是否有一个奇怪的Godot版本,因为我在论坛上看到过这个版本,但它并没有为我工作过:/ –

+0

很难在没有看到代码的情况下确定问题。你可以发布一些片段吗?事件“标识符”是_on_Area2D_input_event函数的参数。你是如何创建这个功能的?您是使用Godot编辑器还是只是在脚本中输入函数?另外,如果你认为你有一个糟糕的Godot版本,只需下载一个新版本(当前的稳定版本是2.1.3),然后再试一次。 – magenulcus

相关问题