Я хочу создать много разных юнитов без необходимости программировать такие вещи, как MoveTo и Attack, действия более одного раза.
Как я вижу, есть два способа сделать это.
- Единый универсальный класс Unit с флагами, который определяет, что он может / не может делать (затем создает экземпляры в статическом массиве и захватывает их при необходимости)
- Абстрактный класс юнитов с абстрактными методами для специфических для Юнита действий, таких как (Атака, Урожай, Патруль), которые затем должны быть реализованы в подклассах , даже если юнит не может ничего собрать.
первый способ сделать это кажется самым простым, но я бы в итоге получил большую часть кода, который не использовался бы для большинства модулей.
Второй способ также может работать. Но если я решу иметь два разных модуля, которые могут собирать ресурсы, у меня будет один и тот же код в двух разных классах, что не похоже на правильный способ сделать это.
Это даже правильный подход к этой проблеме?
В такой игре, как AoE, у каждого юнита есть, как я полагаю, какой-то Список действий / Приказов, мне бы очень хотелось узнать, как добиться чего-то похожего на то, где я могу просто кодировать каждое Действие / Орден один раз, и затем дайте это всем подразделениям, которые нуждаются в указанном действии.
Если мне неясно (весьма правдоподобно) или вам нужна дополнительная информация о том, что именно я ищу, просто спросите меня в комментарии.