Комментарии к моему дизайну v3 - PullRequest
0 голосов
/ 22 февраля 2011

Что ж, после учета всех полезных комментариев, которые я получил к v1 и v2 моей диаграммы классов для игры Space Inader, я обновил свою диаграмму классов еще раз, чтобы реализовать все изменения.

БезДалее, я представляю v3:

Space Invader Architecture V3.0

Методы Move и Update в абстрактном классе Bullet ничего не делают, реализации методов находятся вконкретные классы, которые наследуются от пули.Каждый из этих конкретных классов также будет наследовать свойство Speed ​​от интерфейса IMovable , и у каждого будет свой собственный набор скорости.Весь абстрактный класс Bullet и их производные от конкретного класса являются образцом стратегии.

Некоторые вопросы, которые я хочу задать: Корабль и Захватчик класс может иметь только одну пулю за раз - но класс Invader также не может иметь пуль.Это, например, когда все ряды пришельцев еще не повреждены, тогда только первый ряд пришельцев может стрелять пулями.Ряды над ними не способны стрелять.Но как мне реализовать это в классе Invader ?Должна ли переменная bullet в классе Invader захватчиков, которые не могут стрелять, быть установлена ​​или иметь нулевое значение?Или есть лучший вариант?

Надеюсь, я все ближе и ближе к правильному дизайну, все ваши комментарии приветствуются!

1 Ответ

0 голосов
/ 22 февраля 2011

Похоже, весь дизайн можно свернуть до следующей абстракции:

s

Я не уверен, достаточно ли рассуждений о реализации вашей игры. Duke Nukem 3D - это также коллекция спрайтов с некими композиционными отношениями между ними. Означает ли это, что у вас такой же дизайн, как у Duke Nukem 3D? Я лично чувствую, что диаграмме не хватает завершенности и ясности. А как насчет "игрового поля"? Как это взаимодействует со спрайтами? А как насчет физического движка?

Просто оставляю тебе пищу для размышлений. Удачи!

...