このガイドは、
WEBアプリをPhaser.js + TypeScriptで開発する
既にHTML/CSS/JavaScriptの基礎を理解している
React + TypeScriptプロジェクトを進める予定
という前提で構成しています。
🛠️ VSCode + TypeScript + Phaser.js 環境構築完全ガイド
✅ 【0. Node.js インストール】
🎯 目的
TypeScript開発にはNode.jsが必須。
▶️ インストール手順
Node.js公式サイト にアクセス
「推奨版 LTS」をダウンロード
インストーラーの指示に従いインストール
インストール確認
例: node v18.x.x
, npm 9.x.x
などが表示されれば成功。
✅ 【1. VSCode のインストール】
Visual Studio Code公式サイト からダウンロード
インストーラーでセットアップ
起動後、以下の拡張機能を導入
ESLint
Prettier
TypeScript Hero(任意)
✅ 【2. プロジェクト作成(最短ルート)】
▶️ Step 1. Vite + TypeScript テンプレート作成
これで、TypeScript + Vite 構成の雛形が数秒で生成されます。
▶️ Step 2. Phaser.js をインストール
▶️ Step 3. VSCode でフォルダを開く(VSCodeのターミナルで作業していたら不要です)
✅ 【3. Phaser.js ゲームコード作成】
▶️ src/main.ts を編集
以下は最小構成の動作確認コードです。
✅ 【4. 開発サーバ起動】
ブラウザで http://localhost:5173
を開くと、ゲーム画面が表示されます。
✅ 【5. ビルド】
公開用にビルドする場合は、
dist/
フォルダにHTML/JS/CSSが出力され、Bloggerへの埋め込みやFirebase Hostingで公開可能。
🕒 ここからの学習計画
時間 | 内容 | 到達目標 |
---|---|---|
0:00 – 0:30 | TypeScript基礎 | 型定義と主要構文を理解する |
0:30 – 1:30 | React + TypeScript | 実装で型付けできる |
1:30 – 2:00 | Phaser.js概念理解 | ゲームエンジンの構造を理解 |
2:00 – 3:00 | Phaser.jsハンズオン | 簡易ゲームを動かす |
✅ 1. TypeScript基礎(30分)
🎯 学習目標
TypeScript(TS)とは?
JavaScriptに型定義を加えた言語です。型エラーをコンパイル時に検知できるため、開発効率とバグ防止に役立ちます。
▶️ 1.1 型アノテーション
型アノテーションとは、変数や関数に型を指定することです。
✅ 型を指定することで、意図しない代入ミスを防ぎます。
▶️ 1.2 関数の型定義
関数には引数と戻り値に型を付けます。
✅ 上記では、a
とb
は数値型、戻り値も数値型と指定しています。
▶️ 1.3 オブジェクト型(interface)
TypeScriptの強力な機能のひとつがinterfaceです。
✅ interfaceにより、オブジェクト構造を定義・統一でき、拡張性も高まります。
▶️ 1.4 配列型・ジェネリクス
ジェネリクスは、汎用的に型を扱うための仕組みです。
✅ <T>
により、呼び出し側で型を指定可能。Reactでも頻用します。
💡 学習ポイント
TypeScript公式ハンドブックを5-10分で斜め読みしておくと理解が深まります。
✅ 2. React + TypeScript(60分)
🎯 学習目標
Reactコンポーネントに型を付けることで、propsやstateのエラーを未然に防ぎます。
▶️ 2.1 Functional Component
Reactではtype
やinterface
でprops型を定義します。
✅ これにより、name
が必須であることが明示され、補完も効きます。
▶️ 2.2 useState型指定
useState
で初期値から型推論されますが、明示指定する場合:
✅ 特にnull許容や複合オブジェクトの場合、型指定が重要です。
💡 学習ポイント
TypeScriptを導入すると、IDEの補完・型エラー表示が大幅に向上し、コーディング効率と品質が上がります。
✅ 3. Phaser.js概念理解(30分)
🎯 学習目標
Phaser.jsとは、HTML5対応の2Dゲームエンジンです。ブラウザ上で高速にスプライトアニメーションや物理演算を扱えます。
▶️ 3.1 概要
Scene(シーン): ゲーム画面や状態の単位
Sprite(スプライト): 画像やキャラクター
update(): 毎フレーム呼ばれる処理
▶️ 3.2 最小構成例
💡 学習ポイント
✅ this: Phaser.Scene
を付けると型補完が有効
✅ Phaser 公式Examplesを動かすと理解が早まります。
✅ 4. Phaser.jsハンズオン(60分)
🎯 学習目標
Phaser.jsで
スプライトを表示
クリックイベントを実装
フレーム更新で回転アニメーション
を習得します。
▶️ 4.1 セットアップ
▶️ 4.2 クラスベースシーン例
💡 学習ポイント
✅ create()内でスプライト配置
✅ update()で毎フレーム動かす
✅ input.onでイベント処理
✅ 5. 学習後の次ステップ
算数問題画面とゲーム画面を統合
TypeScriptでデータ構造を設計
お仕事シミュレーションシナリオ作成
テストユーザーに試験運用しUI/UX改善
🎯 まとめ
TypeScriptで型安全なフロントエンドを構築し、Phaser.jsでゲームロジックを実装することで、今回の算数タイムアタックお仕事シミュレーションWEBアプリは堅牢かつ拡張可能になります。
✅ 最終章: Phaser.jsで作る簡単な算数ゲーム
🎯 ゴール
小学4年生向けの掛け算クイズゲームを作成する
クリックだけで進行できる構造にする
ゲーム性(得点とタイムアタック風表示)を取り入れる
📝 1. ゲーム概要
ルール: かけ算の問題が1問表示され、選択肢(ボタン)をクリックして解答する。
仕様:
正解で得点 +10pt
不正解は±0pt
制限時間は30秒
終了後スコア表示
⚙️ 2. コード全体構造
以下は、TypeScript + Phaser.jsでシンプルに構築する例です。
▶️ 2.1 package.json に phaser をインストール
▶️ 2.2 index.ts (または main.ts)
▶️ 2.3 HTMLファイル例
※ bundler(ViteやWebpackなど)でbundle.js
を生成する必要があります。
💡 解説
Phaser.Sceneを継承してゲーム画面を構築
setInteractive() でクリックイベントを登録
Phaser.Math.Between でランダム値を生成
TimerEvent で制限時間を管理
状態管理(スコア、残り時間、正解値)はクラス変数で保持
🎮 応用ポイント
この構造を拡張し、
足し算・引き算・割り算モード切替
正解率や履歴保存
お仕事シミュレーション風UI(例: お客さんから注文 → 計算 → 提供)
FirebaseやSupabaseでランキング保存
を追加することで、教育 × ゲーミフィケーションの完成度を高められます。