町とダンジョン

works-image

RPG風のタイピングゲームです。PHPオブジェクト指向の勉強のために、classを用いて作りました。

概要

お題は色んな言語の関数名、タグ名等

冒険者、モンスターの行動は共に、攻撃・回避
選択した冒険者の職業で、レベルアップ時に上がる能力値・技が変化。

ダンジョンを5回クリアすると、ボスダンジョンに行けます。
ボスを倒したら、ゲームクリアです。

GAME OVERになると所持金を失って、町に帰ります。

使用言語

HTML・CSS・JavaScript・PHP

GitHub

https://github.com/num33dewdrop/town-and-dungeons

各機能使用技術

クラス定数:お題、職業名を定義。

抽象クラス:冒険者クラス、モンスタークラス共に抽象クラスCreatureを継承し、各プロパティ、メソッドをオーバーライド。冒険者クラスはさらに、騎士クラス、魔法使いクラス、アサシンクラスから継承され、生成するオブジェクトを切り替えることで、能力値・技(メソッド)の切替。

静的クラス:履歴クラスは、staticメソッドで定義し、オブジェクトを生成せずにアクセス。

セッション:各オブジェクト、履歴を保存。

jQuery:ダンジョンページでタイマーを実装しており、クロージャによってカプセル化。

works-image

■ダンジョンページ

お題は100語のプログラミング関係の単語。設定時間は10秒です。 タイピング成功時攻撃。敵を倒すと経験値が入りレベルが上がると能力上昇します。また、お金も手に入り、街での回復や、訓練、転職に使えます。 戦闘ログ、レベルアップ履歴等は全てステータス横の履歴に残るため、タイピング中見れなくても後で確認して楽しめます。
works-image

■町ページ

モンスターを倒して稼いだお金で、回復・転職・訓練ができます。 レベルアップでは回復しないようにしているので、この機能で回復します。 転職では『騎士』『魔法使い』『暗殺者』の3つに転職できるようにしています。騎士はHPが上がりやすく、暗殺者は攻撃力が上がりやすい等それぞれに特性を持たせています。 また、MP消費(ランダム攻撃)によって、それぞれの特徴的な攻撃をします。 プレイスタイルで違った楽しみが生まれれば良いと思い実装しました。

■苦労点・まとめ

まだまだ検索力・知識が乏しくオブジェクトのページを超えたセッションのやり取りに苦戦しました。 当時はデバッグログも出していなかった為、なぜデータが正しく受け取れないのか、どこがおかしいのかも分からず、迷走していました。 この作品で、クラスの基本的な使い方・デバッグのやり方・シリアライズを用いたセッションでのオブジェクトの受け渡し方等を学ぶことができました。