2017-07-06 9 views

答えて

0

Buttonクラスを使用して左クリックと右クリックを区別できるかどうかはわかりません。しかし、スプライトが望むように反応させるための複数の簡単な方法があります。

ボタンをクリックした後に反応する領域としてボタンを追加しただけではわかりません。その場合は、スプライトにArea2D(または3D)と衝突シェイプを追加することもできます。コリジョンシェイプでは、Area2Dノードの "input_event"信号をSpriteスクリプト(またはこのシーンで使用するスクリプト)にリンクできます。 Signalをリンクする最も簡単な方法は、エディタの左下にあるSignalリボンを使用する方法です。

エディタは、自動的に新しい関数を作成し、あなたが好き好きな振る舞いコード化することができます。

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'は識別子「イベント」を見つけることができないというエラーを投げます。私はフォーラムでこれを見たので、私が奇妙なバージョンのGodotを持っているのだろうかと思っていますが、それは今まで私のために働いていませんでした:/ –

+0

コードを見ることなく問題を解決するのは難しいです。スニペットを投稿できますか?イベント "識別子"は_on_Area2D_input_event関数の引数です。どのようにしてその機能を作りましたか? Godotエディタを使用しましたか?またはスクリプトに関数を入力しましたか?さらに、あなたが悪いGodotバージョンを持っていると思ったら、ただ新しいものをダウンロードしてください(現在の安定版は2.1.3です)。もう一度やり直してください。 – magenulcus

関連する問題