Chapter 46

ゲーム画面を表示するcanvasを指定する

alkn203
alkn203
2021.09.18に更新

othercanvas

別のcanvasに画面表示

phina.jsのゲーム画面はhtml5canvasタグに表示されていますが、通常はライブラリで自動で作成されます。設計上htmlと併用したい場合などは、自分で用意したcanvasタグを指定して表示することができます。

表示するcanvasの指定方法

HTML

<canvas id = "mycanvas"></canvas>
<h2>I am a html element</h2>
  • body内に表示先のcanvasタグを記載します。
  • 確認のために適当なhtml要素を追加しています。

CSS

#mycanvas {
  margin: 0 auto;
  width: 30%;
  display: block;
}
  • canvasの幅などを指定しています。

javascript

phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    // 表示先のcanvasを指定
    query: '#mycanvas',
    // MainScene から開始
    startLabel: 'main',
    // 画面にフィットさせない
    fit: false,
  });
}
  • main関数の引数querycanvasidを指定します。
  • 引数fitfalseを指定します。

サンプルコード

コードを見る
// グローバルに展開
phina.globalize();
/*
 * メインシーン
 */
phina.define("MainScene", {
  // 継承
  superClass: 'DisplayScene',
  // 初期化
  init: function() {
    // 親クラス初期化
    this.superInit();
    // 背景色
    this.backgroundColor = 'black';
    // ラベル
    Label({
      text: 'I am a phina.js Label',
      fill: 'lime',
    }).addChildTo(this).setPosition(this.gridX.center(), this.gridY.center());
  },
});
/*
 * メイン処理
 */
phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    // 表示先のcanvasを指定
    query: '#mycanvas',
    // MainScene から開始
    startLabel: 'main',
    // 画面にフィットさせない
    fit: false,
  });
  // fps表示
  //app.enableStats();
  // 実行
  app.run();
});

runstantプロジェクト

https://runstant.com/alkn203/projects/0314ae4a