質問編集履歴

1

一部内容を追記しました。

2020/12/28 07:11

投稿

massu2357
massu2357

スコア17

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
- 1つ考えられるのは、JSONに記載しておいたクラス名の文字列から、動的にクラス名に対応するインスタンスを生成するとです。この場合、`Reflect`のようなリフレクション機能を用いることが想定されますが、この機能は遅いからあまり使わないほうがいい?という記事をちょこちょこ見ます。。。
245
+ この場合、`Reflect`のようなリフレクション機能を用いることが想定されますが、この機能は遅いからあまり使わないほうがいい?という記事をちょこちょこ見ます。。。
246
+
247
+ あるいは、アビリティクラス名とアビリティクラスを紐づけたmap(連想配列)を予め用意しておき、ゲーム中は、そのmapのKeyにアビリティクラス名を入れることで、Valueとしてのアビリティクラスを取得してインスタンス化する、という方法もあります。(ただしこちらは、カードの種類が増加していくと、mapが持つ情報も肥大化していくので、設計上あまり良くはないかもです)
220
248
 
221
249
 
222
250