Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.12.2015, 20:39
бакуард вне форума Посмотреть профиль Отправить личное сообщение для бакуард Найти все сообщения от бакуард
  № 1  
Ответить с цитированием
бакуард

Регистрация: Mar 2015
Сообщений: 64
По умолчанию Выбор паттерна проектирования.

Доброго времени суток.

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

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

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

Старый 20.12.2015, 20:58
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,640
Записей в блоге: 4
Зачем тут какие-то паттерны? Это же простое наследование. ПростоПлатформа -> ПрыгющаяПлатформа -> ИсчезающаяПрыгающаяПлатформа -> ПлатформаЛовушкаДляДинозавровКотораяИсчезаетИПрыгает -> БлаБлаБлаПлатформа ....

Старый 21.12.2015, 11:31
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 3  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Предлагаю посмотреть в сторону паттерна Bridge и Decorator

Старый 22.12.2015, 02:13
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я бы каждый тип взаимодействия вынес в отдельный класс. А далее внутри платформы добавил бы Dictionary, в котором ключи - это классы существ, а значения - это экземпляры взаимодействий. Соответчтвенно у каждой платформы будет возможность применить (или не применять) взаимодействие для заданного класса существа. Чем-то напоминает паттерн "посетитель", если вам нужен именно паттерн ))
__________________
...вселенская грусть

Старый 24.12.2015, 19:45
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 5  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Про взаимодействия, только недавно читал, может пригодится http://gamedevelopment.tutsplus.com/...ame--cms-25407

Старый 25.12.2015, 12:19
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 6  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от PainKiller Посмотреть сообщение
Про взаимодействия, только недавно читал, может пригодится http://gamedevelopment.tutsplus.com/...ame--cms-25407
Просто кладешь экземпляр класса EventDispatcher в глобальную переменную и все события через этот экземпляр кидаешь.

Старый 25.12.2015, 14:16
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 7  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
глобальные переменные... мммм...

Старый 25.12.2015, 14:56
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 8  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от i.o. Посмотреть сообщение
глобальные переменные... мммм...
Я не к тому, что надо использовать глобальные переменные. А к тому, что для целей, которые решает автор в своей статье, во флеше достаточно использовать экземпляр класса EventDispatcher.

мууу

Старый 25.12.2015, 16:59
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 9  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Просто кладешь экземпляр класса EventDispatcher в глобальную переменную и все события через этот экземпляр кидаешь.
Вы только картинки посмотрели? :о))

Автор, используй МВЦ, ахахаха
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 25.12.2015, 19:57
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 10  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
GBee, конкретные претензии озвучьте.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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