Я программирую простую ролевую игру (учиться и развлекаться), и я нахожусь в точке, где я пытаюсь найти способ взаимодействия игровых объектов друг с другом. Я стараюсь избегать двух вещей.
- Создание гигантского игрового объекта, который может быть чем угодно и делать все
- Сложность - поэтому я избегаю разработки на основе компонентов, например, см. здесь
Итак, учитывая эти параметры, мне нужен совет, чтобы игровые объекты могли выполнять действия друг с другом.
Например
- Существа (персонажи, монстры, NPC) могут выполнять действия над существами или предметами (оружие, зелья, ловушки, двери).
- Элементы могут выполнять действия над существами или предметами. Примером может быть ловушка, когда персонаж пытается открыть сундук.
То, что я придумал, - это метод PerformAction
, который может принимать Существа или Элементы как параметры. Как этот
PerformAction(Creature sourceC, Item sourceI, Creature targetC, Item targetI)
// this will usually end up with 2 null params since
// only 1 source and 1 target will be valid
Или я должен делать это вместо этого?
PerformAction(Object source, Object target)
// cast to correct types and continue
Или есть совершенно другой способ, о котором я должен думать об этом?