回答編集履歴
6
追記
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
-
※)`PlayerClass`と`EnemyClass`が`CharacterClass`を継承しているのであれば、Character Classにturnメソッドを定義してオーバーライドするのでも良いかと。
|
45
|
+
※)`PlayerClass`と`EnemyClass`が`CharacterClass`を継承しているのであれば、`Character Class`に`turn`メソッドを定義してオーバーライドするのでも良いかと。
|
46
46
|
|
47
47
|
|
48
48
|
|
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
戦闘不能ならスキップさせたいのであれば、trunメソッド内で自身がisAliveかどうかを呼び出してください。
|
59
|
+
戦闘不能ならスキップさせたいのであれば、`trun`メソッド内で自身が`isAlive`かどうかを呼び出してください。
|
60
60
|
|
61
61
|
```Java
|
62
62
|
|
@@ -83,6 +83,16 @@
|
|
83
83
|
|
84
84
|
|
85
85
|
---
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
> つまりBattleClass(審判)は今はAのターンだからAが行動してという指示を出すだけで、実際の行動はCharacterClassのAが決めるということですね。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
はい、その認識でOKです。あと`BattleClass`が行う事はPT単位の全滅判定です。
|
94
|
+
|
95
|
+
全滅したPTがEnemyClassなら戦闘終了、PCならゲームオーバー処理など。
|
86
96
|
|
87
97
|
|
88
98
|
|
5
追記
test
CHANGED
@@ -88,9 +88,11 @@
|
|
88
88
|
|
89
89
|
> スキルを使用する場合は
|
90
90
|
|
91
|
+
> public abstract int damage(Character user,Character target){
|
91
92
|
|
92
93
|
|
94
|
+
|
93
|
-
`SkillDataClass`にはスキル以外の情報を持たないほうがいいです。
|
95
|
+
`Character`の情報はスキルではないので、`SkillDataClass`にはスキル以外の情報を持たないほうがいいです。
|
94
96
|
|
95
97
|
あくまでも該当のスキルを使うのは`EnemyDataClass`と`PlayerDataClass`なので有って。
|
96
98
|
|
@@ -100,7 +102,7 @@
|
|
100
102
|
|
101
103
|
ダメージは考慮事項が多いので、ダメージ計算を行う専用の処理(クラス/メソッド)を作成したほうが良いですが。
|
102
104
|
|
103
|
-
ここではまずシンプルに、相手からの被弾時に行う処理として`CharacterClass`に`damage`メソッドを追加します。ここで、Skillの情報を元にHP
|
105
|
+
ここではまずシンプルに、相手からの被弾時に行う処理として`CharacterClass`に`damage`メソッドを追加します。ここで、`Skill`の情報を元にHPの加減算、バフデバフの状態を設定すればよいでしょう。
|
104
106
|
|
105
107
|
|
106
108
|
|
@@ -112,7 +114,7 @@
|
|
112
114
|
|
113
115
|
`EnemyClass`の場合は、
|
114
116
|
|
115
|
-
1,使用スキルを選択(条件やランダム)
|
117
|
+
1,保持しているスキルリストから使用スキルを選択(条件やランダム)
|
116
118
|
|
117
119
|
2,`BattleClass`クラスから相手PTの情報を取得、ヘイトに応じて攻撃するターゲットを選択。
|
118
120
|
|
4
追記
test
CHANGED
@@ -92,17 +92,33 @@
|
|
92
92
|
|
93
93
|
`SkillDataClass`にはスキル以外の情報を持たないほうがいいです。
|
94
94
|
|
95
|
-
あくまでもスキルを使うのは`EnemyDataClass`と`PlayerDataClass`なので有って。
|
95
|
+
あくまでも該当のスキルを使うのは`EnemyDataClass`と`PlayerDataClass`なので有って。
|
96
96
|
|
97
97
|
`SkillDataClass`クラスではないからです。
|
98
98
|
|
99
|
-
実際にはダメージを計算するクラスを作成したほうが良いですが。
|
100
99
|
|
101
|
-
EnemyClassの場合は、
|
102
100
|
|
103
|
-
|
101
|
+
ダメージは考慮事項が多いので、ダメージ計算を行う専用の処理(クラス/メソッド)を作成したほうが良いですが。
|
104
102
|
|
103
|
+
ここではまずシンプルに、相手からの被弾時に行う処理として`CharacterClass`に`damage`メソッドを追加します。ここで、Skillの情報を元にHPとかデバフの状態を設定すればよいでしょう。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
あと考慮することはPT全体への全体攻撃があるかどうかです。
|
108
|
+
|
109
|
+
あるなら、その点も考えてみてください。最初はターゲット単体へのダメージ処理を実装するのが良いでしょう。
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
`EnemyClass`の場合は、
|
114
|
+
|
105
|
-
|
115
|
+
1,使用スキルを選択(条件やランダム)
|
116
|
+
|
117
|
+
2,`BattleClass`クラスから相手PTの情報を取得、ヘイトに応じて攻撃するターゲットを選択。
|
118
|
+
|
119
|
+
3,スキルをターゲットに攻撃。
|
120
|
+
|
121
|
+
|
106
122
|
|
107
123
|
このような形に。
|
108
124
|
|
@@ -121,3 +137,9 @@
|
|
121
137
|
◇参考情報
|
122
138
|
|
123
139
|
[Properties](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Properties.html)
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
長々と書きましたが、実際にコードを書いてみることをお勧めします。
|
144
|
+
|
145
|
+
コードを書いた後にポイントを絞って再質問したほうが回答が付きやすいかと。
|
3
追記
test
CHANGED
@@ -115,3 +115,9 @@
|
|
115
115
|
`SkillBuilder`クラスを新設して、`Skill`を生成して返すクラスを作るのと。
|
116
116
|
|
117
117
|
保持している`Skill`は`PlayerDataClass`と`EnemyDataClass`では、`HashMap`で管理する形で良いかと。`SkillTree`クラスを作るかどうかは、好みになるのではないかと。
|
118
|
+
|
119
|
+
どうしてもファイルから読みたいならば、リソース(ファイル)をロードするクラスを作って、`SkillTree`に展開するなど。
|
120
|
+
|
121
|
+
◇参考情報
|
122
|
+
|
123
|
+
[Properties](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Properties.html)
|
2
追記
test
CHANGED
File without changes
|
1
追記
test
CHANGED
@@ -79,3 +79,39 @@
|
|
79
79
|
d. 最初はシンプルに戦闘の枠組みを作って、あとから細部を詰めていく形のほうが良いです。
|
80
80
|
|
81
81
|
初心者なら特にそうです。最初は外部ファイルから読まない、特殊な処理を入れない。
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
---
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
> スキルを使用する場合は
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
`SkillDataClass`にはスキル以外の情報を持たないほうがいいです。
|
94
|
+
|
95
|
+
あくまでもスキルを使うのは`EnemyDataClass`と`PlayerDataClass`なので有って。
|
96
|
+
|
97
|
+
`SkillDataClass`クラスではないからです。
|
98
|
+
|
99
|
+
実際にはダメージを計算するクラスを作成したほうが良いですが。
|
100
|
+
|
101
|
+
EnemyClassの場合は、
|
102
|
+
|
103
|
+
1,BattleClassクラスから相手PTの情報を取得、ヘイトに応じて攻撃するターゲットを選択。
|
104
|
+
|
105
|
+
2,スキルを選択(条件やランダム)しターゲットに攻撃。
|
106
|
+
|
107
|
+
このような形に。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
> ファイルから読み込まない場合、スキルの追加はインナークラスで書いて行けば良いのでしょうか?
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
`SkillBuilder`クラスを新設して、`Skill`を生成して返すクラスを作るのと。
|
116
|
+
|
117
|
+
保持している`Skill`は`PlayerDataClass`と`EnemyDataClass`では、`HashMap`で管理する形で良いかと。`SkillTree`クラスを作るかどうかは、好みになるのではないかと。
|