質問: RPGの創作をしているのですが、アイテムの実装をする良い方法が思いつきません。 プレイヤーインスタンス(HPや攻撃力といったプレイヤーの情報を格納しています)の中にインベントリ(持ち物)を作れるような実装方法を探しています。 練習用の剣や鋼鉄の鎧といったアイテム一つ一つにクラスファイルを用意してその中に値を定義するのが最善策なのでしょうか? この方法だと値を定義するのは簡単で製作中も見やすいですが、プレイヤーインスタンスにインベントリを生成する(アイテムの所持状況を記録する)方法がわかりません。 インベントリの実装はMapを利用してアイテムIDをキーとし、その所持数を値として格納しようと考えています。が、IDをアイテムデータに結びつける方法がわかりません。 何か良い実装方法は無いのでしょうか。知恵をお貸しください。
回答: 質問者です。 ご回答ありがとうございます。 質問内容の不備について、申し訳ありません。ご回答から推測するに汲み取って頂けてるとは思いますが、念のため補足させて頂きます。 ---------------補足ココカラ >この「ID」はその前に出てきている「アイテムID」のことなのか? >「アイテムID」は何を意味するものだ? はい。「ID」=「アイテムID」です。 アイテムIDは練習用の剣、普通の剣といったアイテム群に1、2といった通し番号を割り当てた時の番号のことを考えていました。 >アイテムデータは、例えば耐久度や固有名のことだろうか。 はい。固有名やアイテムの持つ能力、フレイバーテキストなどのことです。 ---------------補足ココマデ なるほど。剣や鎧、回復薬といったカテゴリー毎にクラスを作り、そこにコレクションを作るのですね。 となるとプレイヤーインスタンスにインベントリを作成するのは諦めてアイテムデータに所持数情報を管理させるべきなのでしょうか? DBについてはまだ学んでいないのでわかりませんが、負荷を減らすためにもそういった管理方法の使い分けをするべきなのですね。