Java オブジェクト指向 〜テキストRPGキャラクター作成(戦士)〜

以前、テキストRPGを作成する方向でJavaの基本に関して記載しました。
しかし、学習順序を、ちょいと飛ばしてしまったように思い。追記する次第です。

今までにやってきたものは下関連ページに記載しております。
まとめると、ミニゲームを作成する中でJavaの基本を理解していこうというものです。ちなみに「基本」と言ってもいろんな意味があるので、詳細はオブジェクト(クラス)を組み合わせてどんなものを作っていくか?を考えるための基本というところです。

ここでいう基本は。。。

クラスを作成して、クラスとクラスの関連をどのように作り、どのような形で動かしたら良いか?

を考えるための基本になります。
作成途中になりますが、イメージとしては下のような感じです。そしてこのような「絵」のことをUMLを呼びます。全世界共通語ですので、言葉が通じなくてもこのUMLでの会話であれば全世界共通です。

参考に「デザインパターンなどを調べてみるのも1つです。このデザインパターンというのは現代ではすでに常識(JavaAPIで実装済)なので、意識して使用することは少ないかもしれません。

RPGキャラクター

RPGと言ってもいろんなRPGがあるのですが、ここではテキストRPG(TRPG)を考えていこうと思います。具体的には下のようなキャラクター(職業?)がいます。

  1. 勇者
  2. 戦士
  3. 僧侶
  4. 魔法使い
  5. 商人
  6. 遊び人
  7. 賢者

テキストRPGは文言のみでストーリー、ゲームを進行していきます。絵がないので、UI(ユーザーインターフェース)は人間の「想像力」になります。世界最高のGPU(グラフィック・プロセッシング・ユニット)を使用したゲームということになります(笑)。

「RPGのキャラクター」と一言で言ってもイメージがぼやけてしまうので、考える(言葉の)範囲を絞っていきます。RPGの中の「ドラゴンクエスト」を土台にして考えます。

ゲームのプレーヤーは、主人公になりゲームを進めていきます。仲間もいますが、まずは主人公にスポットを当てて考えます。

戦士を作る

「ドラクエの主人公」と言えば「勇者」ですが、勇者はなんでもできるので、わりかし簡単な「戦士」から入っていこうと思います。
今回作成する「戦士クラス」は戦士をTRPGや作成するゲームでも使用することができるようなものを作成します。なぜかというと「プログラム」なので使えないと話にならないからです(笑)

操作する人から考える

当然ゲームなので「操作する人」がいます。そして、操作する人が「勇者」「戦士」「魔法使い」などになるわけです。なので今回はこれらの「登場人物」のうち「戦士」に関して記載します。※くどいかもしれませんが。。。

そして「操作する人」をクラスで表現すると下のようになります。前提としては以下の通りです。

操作するプレーヤーはHPとMPを使用してキャラクターを操作する方向性を決めます。そして、キャラクターの強さの指標としてレベルを見ます。

public class Player {
   private int hp;
   private int mp;
   private int level;
}

そして、実際に動かす「戦士」に関しては、プレーヤーに操作されるので下のようにクラス同士の継承関係を作ります。また、行動するときにしようするコマンドは、「たたかう」「ぼうぎょ」「どうぐ」「とくぎ」です。

public class Fighter extends Player {
   /** たたかう */
   public void attack() {
   }
   /** ぼうぎょ */
   public void difence() {
   }
   /** どうぐ */
   public void item() {
   }
   /** とくぎ */
   public void specials() {
   }
}

まだ、各コマンドの詳細が決まっていないのでから実装になります。
そして、UMLで表現すると下のようになります。

こうして、「絵」にしてみると色々とイメージが湧いてくると思います。そして、プログラミングの面白いところはまだまだ序盤です。

今回はここまでにしておきます。

でわでわ。。。

関連ページ

Java Basic

  1. Java Basic Level 1 Hello Java
  2. Java Basic Level2 Arithmetic Calculate
  3. Java Basic Level3 About String class
  4. Java Basic Level 4Boolean
  5. Java Basic Level 5If Statement
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 Traning of If statement
  8. Java Basic Level8 How to use for statement
  9. Java Basic Level 8.5 Array
  10. Java Basic Level 9Training of for statement
  11. Java Basic Level 10 While statement 
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1
  17. Java Basic JUnit 〜テストスイートの作り方〜

<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-6t+ed+2i-1n-4w"
data-ad-client="ca-pub-7367785927150581"
data-ad-slot="3284986237">