Космические подразделения могут перемещаться во внешнем пространстве. Я не видел игры в которой бы космические войска использовались вместе с подразделениями других перечисленных типов, но не говорю, что она не может существовать. Фактически, я думаю было бы очень интересно объединить подразделения всех четырех типов в одной игре.
Warcraft III это игра в жанре фэнтези, так что в ней нет никаких космических подразделений.
Итак, как можно реализовать способы передвижения в коде? Проще всего воспользоваться перечислением. Приведенный ниже фрагмент кода демонстрирует данный подход:
enum UNIT_ATTR_MOVETYPE { MOVETYPE_LAND,
MOVETYPE_SEA,
MOVETYPE_AIR,
MOVETYPE_SPACE };
В этом фрагменте кода я определил четыре основных способа передвижения: по земле, по воде, по воздуху и в космосе. Теперь мне достаточно только присвоить определяющей способ передвижения переменной в классе подразделения, значение соответствующее желаемому способу передвижения. Реализацию класса я опишу позже в этой главе.
Если вы хотите использовать более детализированный набор способов передвижения, используйте код, похожий на приведенный ниже:
enum UNIT_ATTR_MOVETYPE_ADV { MOVETYPE_LAND_WHEELED,
MOVETYPE_LAND_TRACKED,
MOVETYPE_LAND_HOVER,
MOVETYPE_LAND_FOOT,
MOVETYPE_SEA_SURFACE,
MOVETYPE_SEA_SUBMERGED,
MOVETYPE_AIR_LOW,
MOVETYPE_AIR_HIGH,
MOVETYPE_SPACE_INNER,
MOVETYPE_SPACE_OUTER };