Skip to content

右クリックできるようにする

マウスの中ボタンや右ボタンを識別するには、 g.PointEvent#button を利用します。

IMPORTANT

ニコ生ゲームでは、マウスの中ボタンや右ボタンがゲームプレイ上必須にならないようにしてください。 スマートフォンユーザに遊べないゲームになってしまうためです。

凡例

javascript
button.onPointDown.add(ev => {
  if (ev.button === 0) {
      // マウス左ボタンまたはタッチの押下時の処理
  } else if (ev.button === 2) {
      // マウス右ボタンの押下時の処理
  } else {
      // それ以外の押下時の処理
  }
});
button.onPointDown.add(ev => {
  if (ev.button === 0) {
      // マウス左ボタンまたはタッチの押下時の処理
  } else if (ev.button === 2) {
      // マウス右ボタンの押下時の処理
  } else {
      // それ以外の押下時の処理
  }
});

利用例

次のコンテンツでは、ゲーム画面内でマウス左ボタンを押下すると矩形が青色に、右ボタンを押下すると矩形が赤色に変化します。

詳細

g.E#onPointDowng.Scene#onPointMoveCapture などの操作通知は、タッチ操作とマウス操作を統一して通知します。 これによりプレイヤーは「スマートフォンでのタップ」でも「マウスの左・右ボタンクリック」でも同じようにゲームを操作することができます。

g.PointEvent#button を参照すると、このうちマウスの右ボタンや中ボタンでの操作を識別することができます。 button は次のいずれかの数値で、ボタンなどの状態変化を表します

button意味
-1最後のイベント以降、ボタンもタッチ接触も変化していない
(onPointMove, onPointMoveCapture のみ)
0マウスの左ボタン、タッチ接触の状態が変化した
1マウスの中ボタンの状態が変化した
2マウスの右ボタンの状態が変化した

例えばマウスの右ボタンが押下された時は、 onPointDown トリガーに通知される g.PointDownEventbutton2 になります。

複数のマウスボタン押下

複数のマウスボタンの押下は、onPointDown ではなく onPointMove で通知されることに注意してください。

たとえば「左ボタン押下、マウス移動、右ボタン押下、マウス移動、右ボタン解放、左ボタン解放」の順で操作した時、通知されるトリガーと button の値は次のようになります。

プレイヤーの操作通知されるトリガーbutton の値
1左ボタン押下onPointDown0
2マウス移動onPointMove-1
3右ボタン押下onPointMove2
4マウス移動onPointMove-1
5右ボタン解放onPointMove2
6左ボタン解放onPointUp0

右ボタンの押下や解放が onPointMoveg.PointMoveEvent で通知されます。 g.PointMoveEvent#button-1 でない時、行われた操作が押下なのか解放なのかは、ゲーム側で判断する必要があります。

TIP

button の値や同時押しに関する挙動は、Web ブラウザの PointerEvent の仕様に基づくものです。

WARNING

マルチタッチとの違いに注意してください。 マルチタッチの場合、 pointerId が異なる複数の g.PointDownEvent が通知されます。