[Phaser3]Full screen表示を行う

この記事は約2分で読めます。
スポンサーリンク

やりたいこと

Phaser3でFullScreen表示を行います。

ブラウザの表示部分に大きく表示するわけではなく、動画などをFull Screen表示した場合と同様にブラウザのGUIは非表示になり、ESCでFull Screen表示が終了します。

スポンサーリンク

実装

Full screen

Sceneの子供のクラスからは以下を呼ぶだけです。

this.scale.startFullscreen();

Full screen解除

Sceneの子供のクラスからは以下を呼ぶだけです。

this.scale.stopFullscreen();

シーンの移動に関して

startFullscreen/stopFullscreenはシーンの中のあるのでシーンを移動するとFull Screenの状態が引き継がれないかと心配しましたが、そういうことはなくシーンを移動してもFull Screenの状態は引き継がれます。

スポンサーリンク

うまくFull screenにならないときの対応

API can only be initiated by a user gesture.

以下のエラーが表示されるFull screenにならないことがあります。

Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.

これはユーザ操作がなくrequestFullscreenが呼ばれているのが原因です。ボタンクリック時などに呼ばれるようにしてください。(ページ読み込み→自動でFull screenにはできません。)

Full screenになるが、ゲーム画面がフィットしない

以下のようにFull Screen表示にしたときにゲーム画面が表示にフィットしないときがあります。

これはPhaser3が作成しいるCanvasを最大化しているわけではないからです。

main.jsで指定しているcontainerやその親のクラスを見直してください。(必要ならFullScreen時にクラス/スタイルを書き直す。)私の場合はcontainerの親のdivのHeightのスタイルが悪さしていました。

スポンサーリンク

結果

Phaser3でFullScreen表示を行うことができました。

スポンサーリンク

参考にさせていただいたサイト

Full screen - Notes of Phaser 3

コメント

タイトルとURLをコピーしました