本文へスキップ
totonoe.tech

フレームワークを整える

中級

Phaser を整える。

= Scene に図形を置いて create/update で動かす——2D ゲームエンジンをブラウザ内で試す

Phaser が初めての方は、先に そもそも Phaser とは・どんな場面で使うか をどうぞ。

サンプルコード(クリックでエディタに挿入)

JS EDITOR Phaser 4.2.1
PREVIEW

コンソール

「▶ 実行」を押すとここにログが出ます。キー入力を試すサンプルは、先にプレビュー内をクリックしてください。

そもそも Phaser とは

ブラウザで動く2Dゲームを作るための、道具一式。

Phaser は、ブラウザで遊べる 2D ゲームを作るための JavaScript フレームワークです。画面の描画・キー入力やタッチの受け取り・当たり判定・アニメーション・音といった、ゲームに必要な機能がひとまとめに入っています。

Richard Davey 氏らによって開発されてきたオープンソースです。Canvas や WebGL を使って描くので、アプリのインストールなしに、スマホにもパソコンにも同じゲームを届けられます。絵を描く p5.js や 3D の Three.js と違い、「ゲームの進行」を支える仕組みが中心です。

どこで・どんな場面で使うか

  • ブラウザで遊べるミニゲーム

    URL を開くだけで遊べるので、配布やアップデートの手間が少なくて済みます。

  • キャンペーン・広告のゲーム

    企業サイトやイベントの告知に、遊べる仕掛けとして組み込まれることがあります。

  • 教育・ゲームジャム・プログラミング学習

    動くゲームを短時間で作れるため、学習の題材として使いやすい道具です。

  • ゲームの試作

    アイデアを最小限の形で動かして、面白いかどうかを早く確かめるのに向いています。

  • キャラクターの動きや当たり判定を学ぶとき

    ゲーム特有の考え方を、実際に動かしながら身につけられます。

向いている場面・向いていない場面

  • 向いている:インストール不要で遊べる2Dゲーム。URL を共有するだけで届けられます。
  • 向いている:ゲームの基本機能を一から作りたくないとき。描画・入力・当たり判定が最初から揃っているので、中身に集中できます。
  • 向いていない:大規模な3Dゲームや、高度な描画が必要なもの。そうした用途には、専用のゲームエンジンや3D 向けの道具のほうが適しています。

上の練習場でサンプルを動かし、速さや位置を変えて、ゲームがどう変わるか試してみてください。

このページについて

  • ライブラリは cdn.jsdelivr.net から読み込みます。書いたコードと実行結果は端末内で完結し、外部へ送信しません(送信ゼロ)。
  • プレビューはサンドボックス化した iframe で、このページや端末のデータには触れません。画像アセットは使わず、図形(矩形・円・テキスト)だけで組んでいます。
  • 「停止」は iframe を破棄して作り直します。update() ループを使うサンプルはゲームが動き続けるので、書き換える前に一度「停止」を押すか、そのまま「▶ 実行」で作り直してください。
  • キー入力のサンプルは、先にプレビュー内をクリックして iframe にフォーカスを移してから矢印キーを押してください。

このツールについて

Phaser は Scene(画面の単位)に図形やテキストを置き、create() で初期化・update() で毎フレーム更新する2Dゲームエンジンです。物理エンジンを使わない簡易な当たり判定も含めて体験できます。

左にコード、右にゲーム画面。Phaser の Scene に図形を置き、矢印キーで動かしたり当たり判定やスコアを試せます。画像は使わず図形だけ。

主な機能

  • 4サンプル(シーンと図形・キー入力・当たり判定・スコア表示)
  • 画像アセット不使用・図形描画のみ
  • 左エディタ/右プレビュー+console・停止ボタン
  • Phaser は cdn.jsdelivr.net から初回のみ・送信ゼロ

よくある質問

Q. 画像を使ったゲームは作れますか?

A. このページでは画像アセットは扱わず、矩形・円・テキストなど図形の描画だけで組みます(外部ファイルの取得を避けるため)。

Q. 矢印キーを押しても四角が動きません。

A. 先にプレビュー内(ゲーム画面)を一度クリックしてフォーカスを移してから矢印キーを押してください。

Q. 当たり判定に物理エンジンは使っていますか?

A. 使っていません。Phaser.Geom.Intersects で矩形の範囲を毎フレーム比較する簡易判定です。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

続けて整える

運営サイト

私たちが運営するサイト