JavaScript 150行でパックマンを作ってみた
クラシックなゲームを作るのに、複雑なAIや物理エンジンは必要ありません。
私は150行のvanilla JavaScriptを使ってパックマンを作成しました。
そのロジックは、3つのシンプルな柱に基づいています:
- テキストベースの迷路
- グリッド移動
- 貪欲なゴーストのロジック
迷路は単純な文字列の配列です。 文字が壁やペレットを表します。 テキストを入力するだけで、レベルを編集できます。
当たり判定は簡単です。 ピクセル単位の計算ではなく、グリッドを確認します。 次のグリッドセルが壁でなければ、プレイヤーは移動します。 たった一つのシンプルなチェックですべてが完結します。
レスポンスの良い操作感を実現するには、小さなバッファが必要です。 プレイヤーが意図した方向を別途保存しておきます。 道が開けたときにのみ、その方向に切り替えます。 これにより、動きがぎこちなくなるのを防げます。
ゴーストには貪欲なロジックを採用しています。 移動可能なマスを確認し、プレイヤーに最も近いマスを選択します。 わずかなランダム性を加えることで、生存率が上がります。 このシンプルな計算によって、ゴーストが賢く感じられるようになります。
テキスト迷路 + グリッド移動 + 貪欲なゴースト = アーケードのアイコン。
ここで遊べます: https://dev48v.infy.uk/game/day11-pacman.html
出典: https://dev.to/dev48v/i-built-pac-man-in-150-lines-of-vanilla-javascript-39a0