Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Выбор паттерна проектирования. (http://www.flasher.ru/forum/showthread.php?t=211984)

бакуард 20.12.2015 20:39

Выбор паттерна проектирования.
 
Доброго времени суток.

Какой паттерн проектирования лучше использовать для следующей ситуации: есть игра 2D платформер. Имеется больше сотни видов различных платформ и 50 видов существ (эти цифры в дальнейшем могут сильно меняться, как в большую, так и в меньшую сторону). Каждый вид существ взаимодействует с некоторыми видами платформ специфическим только для них образом (в дальнейшем, виды платформ с которыми данный вид существ может взаимодействовать, могут поменяться на другие, как и способ взаимодействия с ними).

Какой паттерн лучше выбрать, чтобы все изменения с добавлением новых видов объектов или их изменением были централизованы в одном месте?

Кто сталкивался с подобной проблемой, подскажите пожалуйста как можно её решить.
Если можно скиньте ссылку.

caseyryan 20.12.2015 20:58

Зачем тут какие-то паттерны? Это же простое наследование. ПростоПлатформа -> ПрыгющаяПлатформа -> ИсчезающаяПрыгающаяПлатформа -> ПлатформаЛовушкаДляДинозавровКотораяИсчезаетИПрыгает -> БлаБлаБлаПлатформа ....

i.o. 21.12.2015 11:31

Предлагаю посмотреть в сторону паттерна Bridge и Decorator

gloomyBrain 22.12.2015 02:13

Я бы каждый тип взаимодействия вынес в отдельный класс. А далее внутри платформы добавил бы Dictionary, в котором ключи - это классы существ, а значения - это экземпляры взаимодействий. Соответчтвенно у каждой платформы будет возможность применить (или не применять) взаимодействие для заданного класса существа. Чем-то напоминает паттерн "посетитель", если вам нужен именно паттерн ))

PainKiller 24.12.2015 19:45

Про взаимодействия, только недавно читал, может пригодится http://gamedevelopment.tutsplus.com/...ame--cms-25407

callme 25.12.2015 12:19

Цитата:

Сообщение от PainKiller (Сообщение 1190114)
Про взаимодействия, только недавно читал, может пригодится http://gamedevelopment.tutsplus.com/...ame--cms-25407

Просто кладешь экземпляр класса EventDispatcher в глобальную переменную и все события через этот экземпляр кидаешь.

i.o. 25.12.2015 14:16

глобальные переменные... мммм...

callme 25.12.2015 14:56

Цитата:

Сообщение от i.o. (Сообщение 1190128)
глобальные переменные... мммм...

Я не к тому, что надо использовать глобальные переменные. А к тому, что для целей, которые решает автор в своей статье, во флеше достаточно использовать экземпляр класса EventDispatcher.

мууу :)

GBee 25.12.2015 16:59

Цитата:

Просто кладешь экземпляр класса EventDispatcher в глобальную переменную и все события через этот экземпляр кидаешь.
Вы только картинки посмотрели? :о))

Автор, используй МВЦ, ахахаха

callme 25.12.2015 19:57

GBee, конкретные претензии озвучьте.


Часовой пояс GMT +4, время: 03:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.