質問編集履歴
1
一部内容を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -216,7 +216,35 @@
|
|
216
216
|
|
217
217
|
|
218
218
|
|
219
|
+
1つ考えられるのは、JSONに記載しておいたクラス名の文字列(以下のようなイメージです)から、
|
220
|
+
|
221
|
+
動的にクラス名に対応するインスタンスを生成することです。
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
```json
|
226
|
+
|
227
|
+
"card_id_1": {
|
228
|
+
|
229
|
+
"card_name": "スラッシュファイター",
|
230
|
+
|
231
|
+
"cost": 3,
|
232
|
+
|
233
|
+
"power": 3,
|
234
|
+
|
235
|
+
"health": 2,
|
236
|
+
|
237
|
+
"ability_class": "SlashFighter" // このようにアビリティのクラス名を文字列として設定しておく
|
238
|
+
|
239
|
+
},
|
240
|
+
|
241
|
+
```
|
242
|
+
|
243
|
+
|
244
|
+
|
219
|
-
|
245
|
+
この場合、`Reflect`のようなリフレクション機能を用いることが想定されますが、この機能は遅いからあまり使わないほうがいい?という記事をちょこちょこ見ます。。。
|
246
|
+
|
247
|
+
あるいは、アビリティクラス名とアビリティクラスを紐づけたmap(連想配列)を予め用意しておき、ゲーム中は、そのmapのKeyにアビリティクラス名を入れることで、Valueとしてのアビリティクラスを取得してインスタンス化する、という方法もあります。(ただしこちらは、カードの種類が増加していくと、mapが持つ情報も肥大化していくので、設計上あまり良くはないかもです)
|
220
248
|
|
221
249
|
|
222
250
|
|