Должна ли каждая область карты иметь свой собственный класс?

Предупреждение: Xna Noobie здесь.

Я делаю 2D, сверху вниз RPG, вроде как Pokemon. В моей игре у меня есть, наряду с основным классом игры, класс для игрока и класс для карты. Должны ли я иметь отдельные классы для каждой области карты (например, Town.cs, Forest.cs, River.cs) и, если да, должны ли они наследоваться от родительского класса? Или я должен иметь только один общий класс MapRegion, и каждый регион карты должен быть просто экземпляром MapRegion?

2 ответа

Решение зависит от того, будут ли разные регионы нуждаться в разных функциях. Если единственным отличием является местность / препятствия / здания / подобные вещи, то было бы более разумно использовать универсальный класс MapRegion и хранить разные карты во внешних файлах данных, которые будут загружаться каждым MapRegion. Однако, если регионы значительно различаются по тому, как они обрабатываются в вашем коде (что, вероятно, маловероятно для игры в стиле покемонов), вы бы сделали разные подклассы. Это в основном сводится к тому, отличаются ли они функционально или просто содержат разные данные.

Я думаю, что нехорошо иметь разные классы для каждого уровня, но вы можете иметь некоторые специальные уровни, которые требуют другого класса. В большинстве случаев я делаю базовый класс, а если мне нужна специальная карта, я делаю дочерний класс.

Базовый класс карты будет иметь несколько более общих членов:

  1. Список структур
  2. Список NPCS
  3. Фоновая текстура

и так далее....

Другие вопросы по тегам