画面の一部のScreenCapture(Phaser3)

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

やりたいこと

Phaser3で表示している画面のScreenCapture(snapshot)を取得します。

背景

Canvasエレメントを取得してImageを取得しようと思ったのですが、2DのContextを取得できなかったため、別の方法をさがしました。

スポンサーリンク

実装

任意のシーンで以下の関数を呼びます。

this.game.renderer.snapshotArea(x, y, width, height, callback);

x,yは表示領域の左上からの座標です。

(下図の赤領域がキャプチャする領域です。)

callbackの引数はImageエレメントです。

例として以下のような関数をcallbackとして設定します。

(Phaser3で表示した画面のキャプチャをHTMLの最下部に表示しています。)

(image) =>{
    document.body.append(image) 
}
スポンサーリンク

結果

Phaser3で表示されている画面をImageとして出力することができました。

画像のフォーマットはPNGです。(変更可能)

スポンサーリンク

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

Snapshot - Notes of Phaser 3

コメント

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