Как избежать дублирования кода при определении множества объектов с различными характеристиками? - PullRequest
1 голос
/ 14 июля 2010

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

Я использую протоколы для определения действий для символов, где это возможно, и наследования, когда мне нужны объекты для совместного использования больших блоков кода. Проблема с протоколами заключается в том, что они определяют только интерфейс, поэтому реализация часто является дублирующим кодом. Есть ли лучший подход к этой проблеме, или в этом случае приемлемо иметь некоторое дублирование кода? В Objective-C нет множественного наследования, так что об этом не может быть и речи.

Ответы [ 2 ]

3 голосов
/ 14 июля 2010

Это распространенная проблема с наследованием в игровом дизайне. Вместо этого вы можете попробовать использовать компоненты . Существуют разные способы реализации системы, основанной на компонентах, но, как правило, игровой объект представляет собой контейнер компонентов, и вы можете легко повторно использовать компоненты для различных объектов. Вот еще несколько ресурсов, которые могут оказаться полезными:

1 голос
/ 14 июля 2010

«Я думаю, что это должно быть очень распространенным проблема в программировании игр, где вы есть много персонажей с различными возможности ".

Нет, вообще нет. Похоже, вы создаете новые классы или типы для каждого персонажа в игре, тогда как обычно мы просто создаем класс Character и реализуем различное поведение с помощью различных методов или взаимозаменяемых классов поведения. Если поведение дико отличается, то в сценарии, написанные на другом языке, принято ставить. Многочисленные изменения различных возможностей - это, по сути, проблема с данными, а не проблема кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...