Skip to content

プレイヤーごとに異なる表示を行う

プレイヤーごとに異なる表示を行うには、ローカルエンティティを利用します。ローカルエンティティは、エンティティのコンストラクタ引数の local プロパティに true を与えることで生成できます。

凡例

javascript
const localRect = new g.FilledRect({
  ... // その他プロパティ
  local: true // ローカルであることを指定
});
const localRect = new g.FilledRect({
  ... // その他プロパティ
  local: true // ローカルであることを指定
});

詳細

ローカルエンティティを使うと、プレイヤーごとに異なる表示を行えます。 詳細は 逆引きリファレンス » ローカルエンティティを使う を参照してください。

プレイヤーごとに異なる表示を行う状況としては、例えば次のようなものが考えられます。

  • 対戦型のゲームで、アイテム切り替えの UI を自分にだけ表示する
  • ニコ生ゲームで、ゲーム開始時に放送者にだけ難易度選択 UI を表示する

次のコード例は、プレイヤー画像をクリックした時にクリックしたプレイヤーのみの処理を行う例です。g.Sprite がローカルエンティティなのでクリックしたプレイヤーのみ処理が実行されます。

javascript
scene.onLoad.add(function() {
  const player = new g.Sprite({
    scene:scene,
    src: scene.asset.getImage("/image/player.png"),
    touchable:true, // クリック・タッチ操作できるエンティティにする
    local: true // ローカルであることを指定
	});

  player.onPointDown.add(function(ev) {
    // 画像をクリックした時にクリックしたプレイヤーのみの処理を行う
    ...
  }); 
});
scene.onLoad.add(function() {
  const player = new g.Sprite({
    scene:scene,
    src: scene.asset.getImage("/image/player.png"),
    touchable:true, // クリック・タッチ操作できるエンティティにする
    local: true // ローカルであることを指定
	});

  player.onPointDown.add(function(ev) {
    // 画像をクリックした時にクリックしたプレイヤーのみの処理を行う
    ...
  }); 
});

特にニコ生ゲームで、放送者専用の UI や動作を作る場合は、併せて g.game.selfId を利用する必要があります。 詳細は 逆引きリファレンス » (ニコ生ゲーム) 放送者の端末でのみ処理する を参照してください。