Я хочу создать граф сцены для моего проекта F #, например:
root
->player_bob
-->torch
->enemy_1
-->extravagant_hat
-->enemies_cat_jess
--->fleas
--->fur_ball
->loot
и т. Д. И т. П.
Каждый элемент должен содержать коллекцию игровых объектов, чтобыпредставьте, что это дети.
например, список врага1 содержит кошку и шляпу, а список кошек содержит блох и меховой шарик
Поэтому я планирую сделать так, чтобы все они наследовали от класса, содержащего коллекциюэто описывает объекты потомки.
Теперь на мой вопрос: Должен ли я понижать дочерние объекты до GameObject и сохранять их в списке базового класса "GameObject" ИЛИ создавать различающее объединениенапример,
type SceneObject =
|Character of Character //e.g player, enemy, cat
|Item of Item //e.g hat, torch, furball
И сохранять объекты в виде списка «SceneObjects», чтобы избежать каких-либо проблем / накладных расходов при их приведении и т. д., а также позволить мне описать особые случаи, когда объект не отображаетсяи / или не используется при обнаружении столкновений, например: звуковые излучатели, триггеры-ловушки и т. д.
Дискриминационное объединение "объединение + наследование" - моя первоначальная мысль;хотя, поскольку я новичок в FP, я подумал, что стоит спросить у профессионалов лучший, функциональный способ решения этой проблемы.
Спасибо,
JD