Skip to content

画面全体をクリック・タップできるようにする

画面全体をクリック・タップできるようにするには、g.Scene#onPointDownCapture トリガーを利用します。

凡例

javascript
scene.onPointDownCapture.add(function(ev) {
  ... // scene がクリック・タップされた時の処理
});

エンティティをクリック・タップするには g.E#onPointDown を利用してください。

エンティティをドラッグ・スワイプするには g.E#onPointMove を利用してください。

利用例

次のコンテンツは、画面をクリック・タップした位置に黒色の矩形を追加します。

詳細

シーンには、クリックやドラックのイベントを受け取るためのトリガー onPointDownCapture, onPointMoveCapture, onPointUpCapture が用意されています。 これらのトリガーは、シーン内で発生した全てのポイントイベントを受け取ります。

下記のコードでは、画面上をドラックした軌道に沿って矩形を追加します。

javascript
var scene = new g.Scene({ game: g.game });
scene.onLoad.add(function () {
  scene.onPointMoveCapture.add(function (ev) {
    const size = 10;
    const rect = new g.FilledRect({
      scene: scene,
      cssColor: "black",
      width: 10,
      height: 10,
      x: ev.point.x + ev.startDelta.x,
      y: ev.point.y + ev.startDelta.y
    });
    scene.append(rect);
  });
});

押下された座標に touchable なエンティティがある場合は、そのエンティティの onPointDown と、シーンの onPointUpCapture が両方通知されることに気をつけてください。 この場合、onPointDownCapture トリガーに渡した関数の引数 evtarget プロパティにそのエンティティが与えられます。

target プロパティを参照することで、「クリックした座標に touchable なエンティティがない時」だけの処理を記述することができます。

javascript
scene.onPointDownCapture.add(function (ev) {
  if (ev.target) return; // クリックした箇所に touchable なエンティティがある場合は return

  // ... touchable なエンティティがない時の処理
});

関連情報