本文へジャンプ

あのにも の自作ゲーム

主にJavaScript + Canvas APIによる2Dゲームを公開しています。

パックマン クローン

1981年にナムコからリリースされたアーケード版を参考にアレンジしました。

四体いるゴーストの挙動はそれぞれ本家に倣ったもので、個性を再現しています。

パックマンの操作に使用するのは上下左右(またはWSAD)のキーだけです。

遊んでみる

パックマン・ドシエの邦訳

パックマンの仕様について詳しいThe Pac-Man Dossierを翻訳したものです。

このガイドの目的は、パターンを使わずともプレイできるよう、パックマンについて理解をより深めてもらうことにあり、ゲームの流れ、迷路ロジック、ゴーストの個性、神秘的な“split screen”レベルについて詳しくみていきます。...提供するすべての情報は、オリジナルのPac-ManコードROMからの逆アセンブル出力と、実際にゲームプレイの実験的観察から抽出/検証されたものです。よって著者は、その精度に高い自信を持っています。

読んでみる

ランダム迷路のパックマン

ランダム迷路のパックマンです。

毎回異なる迷路を生成できるので飽きずに長く遊べます。

Gキーで新しい迷路の生成、Rキーで同じ迷路のリトライになります。

左上のボタンでグリッドの広さを大・中・小から選べます。

迷路とカラーリングの乱数はシード値から生成されるので再現性があります。

?を押すと操作方法を確認したり、シード値のコピペ、現状のURLをコピーできます。

迷路は本家に倣って袋小路のない、通り抜けられる構造になっています。

ゴーストたちが目標にたどり着けるようにA*法のライブラリを拝借しました。

ただし、ゴーストが選択したターゲットタイルが通路ではないばあいはA*法で辿りつけないので、本家と同様のアルゴリズム(単純な2点間の距離)で探索するようになっています。

パックマン、四種のゴースト、迷路には画像を使用せず、Canvas APIで描きました。

ゴーストたちをリアルタイムに可愛く描けたと自負しております。

こちらもパックマンの操作に使用するのは上下左右(またはWASD)のキーだけです。

遊んでみる

アルカノイド

1986年にタイトーからリリースされたアルカノイドに似せたクローンゲームです。

ハームフルアーミー(敵)の挙動にこだわりました。本家と違って一種類だけですが…

アルカノイドの特徴といえるパワーアップ・アイテムも再現しています:

  • キャッチ
  • レーザー
  • ディスラプション
  • エクスパンド
  • エクステンド
  • スピードダウン

背景画像を除いてすべてCanvas APIで描きました。

自機のパドル操作はマウスで行ないます。

左クリックでレーザーの発射、右クリックでダイアログがでます。

遊んでみる

スペースインベーダー

1978年にタイトーからリリースされた、スペースインベーダーのクローンです。

画像を一切読み込まず、すべてCanvas APIで描いています。

エイリアンが釣り目で本家よりワルにみえます。ドットの絵のほうが愛嬌がありますね。

ラインで色を替えたり、UFOの出現タイミングなど、細かいところは再現していません。

ポーズとその解除はESCキーがトグルになっています。

砲台の移動にはまたはキーを使用して、スペースキーで弾を撃ちます。

本家と違って2連射までできるようになっています。

参考にしたプログラミング実況

ロジックの面で参考にさせていただきました。

遊んでみる

Tennis for Two

本家は1958年に開発されたアナログコンピュータを使ったゲームです。詳しくはTennis for Two - Wikipediaを参照してみてください。

ベクタースキャンのゲームのような雰囲気を醸し出してみました。球の残像効果はオシロスコープでの表示を模したものです。

本家は対戦専用ですが、COMとの対決ゲームになります。COMの挙動にこだわり、ボレーやスマッシュなど多彩な攻撃を仕掛けてきます。

デモ画面では、COM同士の激しいバトルを観覧できます。

操作はつまみの代わりにマウスを使用します(一応、タッチにも対応)

マウスではクリックで打ち返しとなり、球に近いと弱く、遠いと強く打ちます。

タッチでは触れたまま動かして角度と強さを決めて、離したときに打ちます。

カーソルが球より下だと打ち上げ、球より上だとスマッシュになります。

ちなみに打つことができる領域は、描画領域に限られずウィンドウ全体です。

コートの下にある四角(1P側は緑、2P側はピンク)は、COMの現在位置を示しています。

参考にしたプログラミング実況

館長さんの敵アルゴリズムは単純なものだったので、強化したくなりました。

遊んでみる

PONG

1972年にアタリから発表されたポンを真似たありがちなゲームです。

こちらも2人対戦ではなくCOMとの対決になります。

前述のテニスほど敵の挙動に工夫がなく面白みがありません。

こちらにもテニスで使用した残像効果の演出をつけています。

パドルの操作にはマウスを使用します(一応、タッチにも対応してます)。

遊んでみる

習作:小一時間で作ってみた@ゲヱム道館 の移植

ドラクエの竜王戦を小一時間で作ってみたをJSで移植しました:

遊んでみる

館長さん作はC言語によるコンソールですが、ビジュアルを無駄にこりました。

_getch関数の同期処理を非同期関数(async,await)で代替してみる練習です。

エンターキーで読み進めて、上下キーでコマンドを選択します。

小一時間で作ってみたGLのうち2作をJSで移植しました:

遊んでみる

特に視覚演出がこっているこの2つを作ってみたくなりました。

ほぼそのままの移植してますが、外見やパラメータを少し改変しています。

どちらもマウスで操作します(一応、タッチにも対応)。

パズドラはオーブを入れ替えて同じ色のものを3つ以上揃えて連鎖させるゲームです。

モンストはプレイヤーをドラッグで引き、指を離すと飛び放たれて敵に攻撃を与えます。