あのにも の自作ゲーム
主に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で移植しました:

