前提・実現したいこと
オブジェクト指向について質問です。
たとえば、ドラクエみたいなゲームを作るとします。そこに、敵が200種類出てくるとします。
そうした際、Monsterクラスのインスタンスで普通のモンスター、Monsterクラスを継承したBossクラスのインスタンスでボスのデータ、というように200種類書くのでしょうか。
10種類とかだったらまだしくも、200とかだと実際に書くのか、何か技を使うのか知りたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
Monsterクラスに名前や属性、ステータスなどのフィールドを作れば良いです。
各モンスターのパラメータは外部ファイルで管理します。
Monsterクラスのインスタンスで普通のモンスター、Monsterクラスを継承したBossクラスのインスタンスでボスのデータ、というように200種類書くのでしょうか。
何らかの区分でクラスを分けるとしても、さすがにモンスター毎にはならないかと。
投稿2018/10/15 11:19
編集2018/10/15 11:25総合スコア35660
0
参考情報
- 異なる種類の敵はクラスを分けるべきか
https://dixq.net/forum/viewtopic.php?t=14077
- ゲームAIの基礎と事例
https://www.slideshare.net/misolmiso/ai-54367524
- ストラテジーパターンを用いた、敵(Enemy)クラスの設計
https://qiita.com/zamaka9/items/34fea28861ec175ca30d
- RPGのモンスターなどのキャラクターを作成するときに使うデザインパターン
投稿2018/10/15 15:49
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
次のような感じで抽象化します。
回答内容としては、LouiS0616さんと同じです。
名前だけでなく、耐性やAIなども抽象化して、メソッドやプロパティ、フィールドとして用意します。
c#
1public class Monster 2{ 3 public int Type = 0; 4 public string TypeName { get => GetMonstarTypeName(this.monsterType); } 5 public string InstName = "個体名ヌルポガ"; 6 public int Health = 100; 7 public Monster(int monsterType) 8 { 9 this.Type = monsterType; 10 this.InstName = GetMonstarInstName(this.Type); 11 this.Health = GetMonsterHealth(this.Type); 12 } 13}
投稿2018/10/15 12:02
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/15 13:13
退会済みユーザー
2018/10/15 13:36 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/15 11:23