Phaser4入門【開発環境構築編③】ファイル構成
B美
作業ディレクトリである「D:\phaser」の下に「hello」ディレクトリが作られ、その下はこんな感じで構成されているの
C菜
B美
まず画像等のリソースを格納するのが「public\assets」ディレクトリ
(すでに二つの画像ファイルが格納されているわ)
A子
B美
実際の意味合いとしては「リソース」と言ったほうが合ってるかもしれないけど…
C菜
それでは、ソースコードについては(CakePHPと同様に)「src」ディレクトリの中でしょうか~?
B美
こんな感じよ
↓
A子
ファイルの拡張子が「ts」って、どういうこと?
あっ!
TypeScriptだから「ts」かー
B美
もしもプログラム言語として「JavaScript」を選択していた場合は「js」になるけどね
C菜
B美
(例えば、背景色や画面の縦横サイズ等)
あ、新しい画面を追加するときって「import」とconfigの「scene」への追加が必要だからね
A子
てか、画面は三つだったはずだけど、ファイルは五つあるね(苦笑)
B美
1.Boot.ts
↓
2.Preloader.ts
↓
3.MainMenu.ts
↓(マウスクリックすると)
4.Game.ts
↓(マウスクリックすると)
5.GameOver.ts
↓(マウスクリックすると)
6.3番に戻る
つまり、実際の画面としては3~5番の三つだけよ
C菜
まずは「Boot.ts」です~
A子
『ブートシーンは、ゲームのロゴや背景など、プリローダーに必要なアセットを読み込むために一般的に使われるよ。』
『アセットのファイルサイズは小さいほどいいよ、ブートシーン自体にはプリローダーがないからね。』
…らしい
C菜
A子
最初のコメント行を翻訳するとこうなったよ
『この画像をブートシーンで読み込んだから、ここに表示できるよ』
C菜
それを「Preloader.ts」のほうで使ってるわけですね~
A子
『シンプルなプログレスバーです。これがバーのアウトラインです。』
『これは進捗バーそのものです。進捗の%に応じて左からサイズが大きくなります。』
『LoaderPlugin が発する 'progress' イベントを使ってロードバーを更新しよう』
うーん
なに言ってんだか、よく分からん(笑)
B美
どうせ「生成AI」にコードを書いてもらうんだし…(笑)
C菜
『ゲームのアセットを読み込む - 自分のアセットに置き換えてね』
たしかに、ここでロゴ画像(logo.png)をロードしているように見受けられます~
A子
『すべてのアセットが読み込まれたら、他のゲーム部分でも使えるグローバルオブジェクトをここで作るのがよくあります。』
『例えば、ここでグローバルアニメーションを定義できるので、他のシーンでも使うことができるよ。』
『メインメニューに移動します。また、これをカメラフェードのようなシーン遷移に置き換えることもできます。』
まぁ、とにかく(よく分からんけど)メインメニューである「MainMenu.ts」に移動するわけだね
C菜
A子
画像(image)二つと文章(text)一つを設定して、あとはイベントとしてマウスクリック(pointerdown)したら「Game.ts」に移動する…ってことだよね?
B美
んで、その「Game.ts」こそがゲームとしての中核部分よ
A子
クリックで「GameOver.ts」に移動するってだけ
C菜
A子
ほとんど「Game.ts」と同じじゃん
表示するテキストが異なる(「Game Over」という文言)くらいかな
B美
ゲーム画面に「Hello World」という文字を表示してみなさい
C菜
「Make something fun!\nand share it with us:\nsupport@phaser.io」
という部分を
「Hello World」
に変えるだけで良いと思います~
A子
えっと、まずはコマンドプロンプトを管理者として実行するよ
(Windowsの検索欄に以下を入力)
| cmd[Ctrl]+[Shift]+[Enter] |
んで、コマンドはこうだね
|
> cd /d d:\phaser\hello[Enter]
> npm run dev[Enter] |
↓
C菜
| http://localhost:8080 |
メインメニューの次の画面(Game.ts)は以下のようになりましたよ~
(きちんと変更されてます~)
B美
コマンドプロンプトに以下の一文を打ち込んでね
| > npm run build[Enter] |
要するに、最後が「dev」ではなく「build」になってるだけ
C菜
その中身は以下の通りです~
↓
↓
A子
いや、まさかね
B美
ちなみに、TypeScriptのコードはJavaScriptに変換されて、「js」ファイルとして全てまとめられているわ
(ブラウザソフトではJavaScriptでないと動かないからね)
C菜
CakePHPのときはプロジェクトファイル全体をWebサーバにアップロードしましたよね~?
B美
それを行うコマンドがさっきの「npm run build」ってわけ
A子
それは配布の手間って観点から見れば、なかなか良い仕組みだね
んじゃ、実際に公開Webサーバにアップしてみよう!
ドキュメントルートの下に「dist」ディレクトリ以下を全てアップして、終わったら「hello」に名前を変更するよ
C菜
| https://friction-river.jp/phaser/app/hello/dist/ |
インターネット経由でアクセスできますので、こちらをクリックしてみてください~
(クリックすると別ウィンドウで開きます)
A子
最初にB美が言ってた通り、めっちゃお手軽だってことがよく分かったよ
B美
この「dist」をさらに圧縮して、ただ一つのファイルにすることもできるわよ
A子
さっそくやってみよう
C菜
B美
プラグイン(vite-plugin-singlefile)をnpmで導入しなきゃいけないし、色々と制約もあるのよね
あと、パフォーマンスも(もしかしたら)低下するかもしれない
まぁ、メリットとしては(一つにまとめられた)HTMLファイルをダブルクリックで起動できることくらいかしら
(普通はWebサーバが必要だからね)
A子
んじゃ、別にやらなくても良いや
「dist」ディレクトリ、ただ一つに圧縮できるだけでもすごいと思うからね
B美
次回は、実際に遊べるようなゲームを作ってみましょう
C菜


