趣味で終わらせたくない方へ。現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

JavaScriptで作る2Dアクションゲーム入門|ジャンプ・移動・当たり判定の基本

アクションゲームの作り方

「ゲームを自分で動かしてみたい。けれど、開発環境の準備から難しそう…」と感じる人は多いです。

そこでこの記事では、特別なゲームエンジンを使わず、HTML・CSS・JavaScriptの3ファイルだけで作れるシンプルな2Dアクションゲームを題材に、基本の流れを整理していきます。

ブラウザさえあれば試せる内容なので、プログラミングの練習用としてもおすすめです。

この記事でわかること

  • HTML5キャンバスとJavaScriptでゲームを動かす基本構造
  • プレイヤーの移動・ジャンプ・重力・地面との当たり判定の考え方
  • requestAnimationFrame を使ったゲームループの組み立て方
  • サンプルコードをベースに機能を拡張するためのヒント
ゲーム開発講師
ゲーム開発講師

今回は「走ってジャンプするだけ」のミニゲームを題材に、2Dアクションの土台になる考え方を一通り確認していきましょう。

\あなたにピッタリのアクションゲーム制作講座を見つけよう!/

おすすめ第1位

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

ロックマン風の横スクロールACTをスマホ化・広告実装まで対応。ゲームのリリースまでを見据えた実践的なカリキュラムで、作って終わりにならない一本です。

講座を購読する \リリースまで一気に学ぼう/

3D入門に最適

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

ゼルダ風の3Dアクションをスマホ対応で作れる入門講座。全16回で初心者でも3Dゲーム開発の基礎からしっかり習得できます。

講座を購読する \初心者でも3Dアクションが作れる!/

3プラットフォーム対応

Unity FPSゲームの
作り方講座

★★★★★ (スマホ・VR対応)

FPS・VR・スマホの3プラットフォームに同時対応。1本作るだけで3つのゲームが完成する圧倒的なコスパが魅力の講座です。

講座を購読する \FPS・VR・スマホを同時に制覇!/
ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

準備するものは3ファイルだけ|最小構成を確認しよう

まずは、どんなファイル構成でゲームを動かすのか整理しておきます。

今回のサンプルでは、次の3ファイルだけを同じフォルダに配置すればOKです。

ファイル名 役割 内容のイメージ
index.html 画面の土台 キャンバス要素を用意し、あとで書く JavaScript を読み込みます。
style.css 見た目・レイアウト キャンバスを中央に配置し、背景色や枠線などを整えます。
game.js ゲームの本体 プレイヤーの位置、重力、ジャンプ、キー入力、ゲームループなどを記述します。

フォルダ構成は次のようなイメージです。

  • すべて同じ階層に置くこと
  • ファイル名の綴りミスがあると読み込めないので要チェック
  • 最初はこの構成のまま触り、慣れてきたらサブフォルダで整理してもOK

index.htmlを作る|キャンバスとスクリプトの入り口

続いて、ゲーム画面となるキャンバスと JavaScript ファイルの読み込み部分を用意します。

ここでは 800×600 ピクセルのキャンバスを1つだけ配置したシンプルなHTMLを使います。

サンプル:index.html

 


  • <canvas id="gameCanvas"> … ゲームを描くための領域
  • widthheight … キャンバスの解像度(今回は 800×600)
  • <script src="game.js"> … ゲームの処理を書いた JavaScript を読み込む

この段階ではまだ真っ白なキャンバスしか表示されませんが、ゲームの「入り口」は整いました。

【ゲームの作り方講座プレゼント中!】

style.cssを整える|キャンバスを画面中央に表示する

次に、キャンバスを画面中央に配置し、ゲーム画面らしい見た目に整えていきます。

最低限のレイアウトだけでも、デバッグ時の見やすさがだいぶ違ってきます。

サンプル:style.css

 

  • display: flex;justify-content / align-items でキャンバスを中央寄せ
  • height: 100vh; により、ブラウザの高さ全体をレイアウト対象にしている
  • #gameCanvas で枠線と背景色を指定し、ゲーム画面らしさを出している

ここまで設定すれば、ブラウザで index.html を開いたときに、水色のキャンバスが中央に表示されるはずです。

game.jsの全体像を作る|ループとプレイヤー制御

最後に、ゲーム本体となる game.js を書いていきます。

ここでは、次の要素を1つのファイルにまとめます。

  • キャンバスと描画コンテキストの初期化
  • プレイヤーと地面のデータ
  • キー入力の管理
  • 描画処理(draw)
  • 更新処理(update)
  • ゲームループ(loop)

まずは全体のコードを通して眺め、そのあとで各パートを分解して見ていきましょう。

サンプル:game.js 全体コード

コード自体はそこまで長くありませんが、「状態を更新して描画する」ループになっている点が重要です。

各パートの役割を分解して理解する

ここからは、先ほどの game.js を部分ごとに確認していきます。

キャンバスとコンテキストの取得

canvas は HTML 側のキャンバス要素そのもの、ctx は「絵を描くためのペン」のようなイメージです。

この ctx を通して、四角形や画像、テキストなどを描画していきます。

プレイヤー・地面・物理パラメータ

  • 重力・ジャンプ力・移動速度は「後から調整しやすいように」定数として定義
  • プレイヤーは位置・大きさ・縦方向の速度・ジャンプ中かどうかを1つのオブジェクトで管理
  • 地面は「高さだけを持つシンプルな長方形」として扱っている

ゲームでは、このような「数字の集まり」が毎フレーム少しずつ変化していきます。

キー入力を押しっぱなしで判定する仕組み

キーが押された瞬間だけを見るのではなく、keys オブジェクトに「今押されているかどうか」を保存しておくスタイルです。

こうしておくと、更新処理の中で

 

という書き方で、現在の入力状態を毎フレーム参照できるようになります。

描画処理(draw)の役割

 

後から背景画像や敵キャラクターを追加する場合も、この中に『描く順番』を追記していくイメージです。

更新処理(update)で重力と当たり判定を実装する

 

 

重要ポイント

  • 位置そのものではなく「速度」を通してキャラクターを動かす
  • 地面にめり込んだら「位置を戻して速度を0」にするのがシンプル
  • ジャンプ中かどうかをフラグで管理して、空中連打による多段ジャンプを防ぐ

ゲームループ(loop)と requestAnimationFrame

 

requestAnimationFrame は「次の描画タイミングでこの関数を呼んでください」という指示です。

ブラウザ側がよきタイミングで loop を繰り返し実行してくれるため、おおよそ 60FPS 程度で

  • update … 数字(位置・速度・入力状態)を更新
  • draw … 更新された状態を画面に描き直す

というサイクルが続いていきます。

ここまでの動作チェックリスト

コードを書き終えたら、ブラウザで index.html を開き、次のポイントを確認してみましょう。

項目 チェック内容
左右移動 左右キー or A / Dでプレイヤーがスムーズに左右へ動くか
ジャンプ スペース or W / ↑キーでジャンプし、空中連打で無限に飛べないか
重力 ジャンプ後に自然に落下しているか、ふわふわしすぎていないか
地面との接触 地面にしっかり乗り、めり込まずに止まるか
画面端 左右の端から外に出てしまわないか

⚠️ よくあるつまずき

  • キャンバスIDの綴りが違い、getContext が null になっている
  • ファイル名・パスのミスで game.js が読み込まれていない
  • 条件式の不等号(< と >)を逆にしてしまい、当たり判定が機能しない

動きが想定と違うときは、update() 内の処理順と条件を重点的に見直してみてください。

機能を広げるための発展アイデア

ここまでで「走る」「ジャンプする」「地面に立つ」という最低限のアクションは実装できました。

ここから少しずつ要素を増やしていくと、ぐっとゲームらしさが出てきます。

  • 足場ブロックの追加
    地面とは別に小さな四角形をいくつか用意し、同じように当たり判定を入れる。
  • 敵キャラクターの配置
    プレイヤーとは別のオブジェクトを動かして、触れたらゲームオーバーにする。
  • 画像の描画
    fillRect の代わりに drawImage を使い、キャラクター画像や背景画像に差し替える。
  • スコアや残機の追加
    右上にスコアを描いたり、残りライフを表示してゲーム性を高める。
ゲーム開発講師
ゲーム開発講師

一度に全部を盛り込もうとすると大変なので、「今日は足場だけ」「次はスコア表示」といった形で区切って進めるのがおすすめです。

アクションゲームを作りたいなら!Unity入門の森のアクション制作講座で本格ゲーム開発に挑戦しよう

Unity入門の森には、横スクロール・3Dアクション・FPSまで幅広いアクションゲームを作れる講座が揃っています。作りたいジャンルや目標に合わせて選んでみてください。

Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!スマホ化・広告実装まで対応した本格横スクロールACTを作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。

ステージ選択・ボスの弱点システム・新武器ゲットというロックマン風のゲーム設計はもちろん、スマホ実機ビルド・AdMob広告実装(リワード・インタースティシャル)まで対応。作って終わりではなく、リリースして収益化するところまで学べます。

書籍や他のチュートリアルでは扱われていないリリースレベルの開発スキルを習得したい人に、自信を持っておすすめできる一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ Unity 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • 画像・動画・全ソースコード公開の充実したサポート
  • アセットを使った実践的なゲーム開発手法が身につく

ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。

3Dゲーム開発の基礎からスマホ化まで全16回でしっかり習得できます。画像・動画・全ソースコードを公開した丁寧な解説で、初めて3Dゲームに挑戦する人でも確実に完成まで到達できる構成です。

「3Dゲームはなんだか難しそう」と感じている人が最初の一歩を踏み出すのに最適な講座です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!

Unity FPSゲームの作り方講座【全17回!FPS・VR・スマホの3プラットフォームを同時に作れる!】

Unity FPSゲームの作り方講座

  • APEX・バトルフィールド風のFPSゲームをゼロから開発
  • FPS・スマホ・VRの3プラットフォームに同時対応
  • 書籍では学べないVR対応弓矢FPSのオリジナリティ高い開発手法
  • 地上・空中の敵AIや弓矢チャージショットなど本格システムを実装
  • 初心者でも安心の丁寧な解説と完成プロジェクトファイル付き

Unity FPSゲームの作り方講座は、APEX・バトルフィールド・Call of Dutyのような一人称視点のFPSゲームを作るための講座です。

弓矢を使ったオリジナリティの高いFPSをベースに、PC・スマホ・VRの3プラットフォームに同時対応した開発手法を全17回で習得できます。VR空間で弓を構えて矢を射るという高度なアクションの実装まで、書籍では学べないスキルが身につきます。

1本の講座でFPS・スマホ・VRを同時に作れるのはこの講座ならでは。3Dゲーム開発の幅を一気に広げたい中・上級者志望の方にもおすすめです。

FPS・スマホ・VRの3プラットフォームを同時に完成させる
1本作るだけで3つのゲームが完成する圧倒的な開発体験を手に入れよう
→ Unity FPSゲームの作り方講座を見てみる
書籍では学べないVR対応FPSで、一歩先の3Dゲーム開発スキルを今すぐ!

まとめ

JavaScriptとHTML5キャンバスを使った2Dアクションゲームの基本的な作り方を見てきました。

この記事の要点

  • HTML・CSS・JavaScriptの3ファイルだけでシンプルな2Dアクションは十分作れる
  • キャラクターは「位置」と「速度」を分けて管理し、重力やジャンプを実装する
  • ゲームは「状態を更新 → 描画」をループさせる構造が基本
  • まずは地味でもよいので「1本動くもの」を完成させることが大切

今回の土台ができていれば、あとは敵やステージ、演出などを少しずつ追加していくだけで、オリジナルのアクションゲームへと育てていけます。

より本格的なゲーム制作に挑戦したくなったら、Unityなどのゲームエンジンでの2Dアクションにもステップアップしてみてください。考え方は共通している部分が多く、今回の経験が必ず活きてきます。

 

【ゲームの作り方講座もプレゼント中!】

ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

コメント

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