JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【レビュー】バニラJavaScriptだけで作られたスペースインベーダー(Andrea Maille氏作)

Andrea Maille氏が開発した「Space Invaders」は、1978年に登場した伝説的な2Dシューティングゲームを、フレームワークやライブラリに一切頼らない純粋なバニラJavaScriptのみで再現した作品です。

【レビュー】バニラJavaScriptだけで作られたスペースインベーダー(Andrea Maille氏作)

主な機能

このゲームには、以下の機能が実装されています。

  • 当たり判定(コリジョン検出)
  • スペースキーでの射撃
  • 矢印キーによる左右(X軸方向)の移動
  • ピースモード(ロケットの代わりにバラを投げて敵を倒すユーモアあふれるモード 😂)
  • タイマー表示
  • スコアカウント
  • ハイスコアボード
  • スコアの送信機能

レビューの感想

敵AIの動きはそれほど複雑ではなく、サウンドエフェクトが未実装である点は惜しいところです。効果音が加われば、ゲームの没入感と中毒性は間違いなく大きく向上するでしょう。

とはいえ、外部ライブラリを使わずにここまで完成度の高いゲームを作れるというのは、純粋なJavaScriptでゲーム開発に挑戦したい人にとって非常に価値のある学習教材であり、大きなインスピレーションを与えてくれる作品です。コードの構造や当たり判定の実装方法などを、実際に動くサンプルとして参考にできる点が魅力です。

プレイとソースコード

スペースインベーダーをプレイする

ソースコードを確認する

  1. バニラJavaScriptでヒープソートを実装する方法をわかりやすく解説

    ヒープソートとはヒープソートは、要素同士を比較しながら並べ替える「比較ベースのソートアルゴリズム」の一つです。選択ソートの改良版と考えることができます。選択ソートと同様に、入力データを「ソート済み領域」と「未ソート領域」に分割し、未ソート領域から目的の要素(最大値または最小値)を取り出してソート済み領域へ移動させる、という処理を繰り返すことで未ソート領域を少しずつ縮小していきます。ヒープソートの最大の特徴は、二分ヒープ(バイナリヒープ)というデータ構造を利用する点です。ヒープを構築することで最大値(または最小値)を効率的に取り出せるため、平均・最悪どちらのケースでも計算量が O(n log n

  2. 【JavaScript】スペース区切りの文字列から要素の出現頻度をカウントする方法

    問題の概要 次のように、空白(スペース)で区切られた複数の文字を含む文字列があるとします。 const str = a b c d a v d e f g q; このような文字列を引数として受け取り、各要素とその出現回数をペアにしたオブジェクトの配列(頻度配列)を返すJavaScript関数を作成しましょう。出現回数が多い順に並べ替えて返すのがポイントです。 実装コード 以下が実際のコードです。 const str = a b c d a v d e f g q; const countFrequency = (str = ) => {