Должна ли каждая область карты иметь свой собственный класс?
Предупреждение: Xna Noobie здесь.
Я делаю 2D, сверху вниз RPG, вроде как Pokemon. В моей игре у меня есть, наряду с основным классом игры, класс для игрока и класс для карты. Должны ли я иметь отдельные классы для каждой области карты (например, Town.cs, Forest.cs, River.cs) и, если да, должны ли они наследоваться от родительского класса? Или я должен иметь только один общий класс MapRegion, и каждый регион карты должен быть просто экземпляром MapRegion?
2 ответа
Решение зависит от того, будут ли разные регионы нуждаться в разных функциях. Если единственным отличием является местность / препятствия / здания / подобные вещи, то было бы более разумно использовать универсальный класс MapRegion и хранить разные карты во внешних файлах данных, которые будут загружаться каждым MapRegion. Однако, если регионы значительно различаются по тому, как они обрабатываются в вашем коде (что, вероятно, маловероятно для игры в стиле покемонов), вы бы сделали разные подклассы. Это в основном сводится к тому, отличаются ли они функционально или просто содержат разные данные.
Я думаю, что нехорошо иметь разные классы для каждого уровня, но вы можете иметь некоторые специальные уровни, которые требуют другого класса. В большинстве случаев я делаю базовый класс, а если мне нужна специальная карта, я делаю дочерний класс.
Базовый класс карты будет иметь несколько более общих членов:
- Список структур
- Список NPCS
- Фоновая текстура
и так далее....