マウスとタッチイベントの処理
GDevelop はタッチとマウス入力に標準で対応しています。
一番簡単な方法:「カーソル/タッチはオブジェクト上にある」条件を使う
「カーソル/タッチはオブジェクト上にある」条件を使うと、マウスカーソルまたはスクリーンタッチが指定したオブジェクトの上にあるかどうかをチェックできます。
カーソル/タッチがオブジェクト上にあった場合は、イベント内の次の条件やアクションのために対象オブジェクトが選択されます。
「カーソル/タッチはオブジェクト上にある」条件は、「マウスボタンを押しているかタッチしている」や「マウスボタンを放した直後」条件と一緒に使うことができます。タッチはデフォルトで左クリックを再現します。このデフォルト設定で、ユーザーがボタンやオブジェクトをタッチした場合とマウスで左クリックした場合の両方を検出できます。
また MouseX
や MouseY
のような式を使って、そのシーンのカーソルの位置を取得できます。
より複雑な方法:マウスやタッチの位置を条件でチェックする
タッチとカーソルのイベントを区別したい場合は、「タッチでのマウスカーソル移動を有効化/無効化する」アクションで「いいえ」を指定して無効化します。これを実行すると、タッチはマウスの左クリックを再現しなくなります。この状態で「マウスボタンを押しているかタッチしている」条件を使用しても、タッチを検出しません。
タッチとカーソルのイベントを分離した状態でも、依然として式 MouseX
と MouseY
でマウスカーソルの位置を取得できます。ただしこの式にはもはやタッチの位置が反映されないため、タッチの位置は別の式で取得する必要があります(TouchX
と TouchY
)。
マルチタッチも扱えます。タッチ識別子を変数に格納しておき、タッチの位置を返す式か条件にそれを渡します。くわしくは次の例を参照してください。
Tip
やってみよう! 🎮
Open this example online: https://editor.gdevelop.io?project=example://multitouch