A-tit indd


Компонент (Component) —  Паттерны программирования игр



Download 3,35 Mb.
Pdf ko'rish
bet210/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   206   207   208   209   210   211   212   213   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

288
Компонент (Component) — 
Паттерны программирования игр
{
public:
virtual void update(GameObject& obj,
Graphics& graphics)
{
// €, 6 '…
}
};
Теперь мы можем создать объект, который обладает 
всеми изначальными свойствами поведения Бьйорна, 
без необходимости создания специального класса. При-
мерно так:
GameObject* createBjorn()
{
return new GameObject(
new PlayerInputComponent(),
new BjornPhysicsComponent(),
new BjornGraphicsComponent());
}
Определяя другие функции, инстанциирующие 
GameObjects
с различными компонентами, мы можем 
создавать любые виды объектов, которые нужны в игре.
Архитектурные решения
Самый важный вопрос, на который вам надо ответить 
перед использованием этого паттерна: «Какой набор 
компонентов мне понадобится?» Ответ будет зависеть 
от ваших потребностей и жанра игры. И чем больше 
и сложнее ваш игровой движок, тем больше вам захо-
чется разделить его на компоненты. Но есть еще пара 
вопросов.
Как объект получает компоненты?
Мы разбили монолитный объект на несколько отдель-
ных компонентов, и теперь нам необходимо определить, 
как объединить эти части.
Функция 
createBjorn()
— это, 
конечно же, пример 
классической реализа-
ции паттерна Фабрич-
ный метод (Factory 
Method) «Банды четы-
рех».


Паттерны программирования игр
— Паттерны уменьшения связанности
289
• Если объект создает свои компоненты сам
• Это гарантирует наличие у объекта всех необходи-
мых компонентов
. Вам не надо беспокоиться, что 
кто-то забудет связать компонент с нужным объек-
том и тем самым сломает игру. Объект контейнер 
сам обо всем позаботится.
• Труднее изменить конфигурации объекта
. Одна 
из наиболее полезных функций — возможность со-
здавать новые типы объектов простой комбинаци-
ей компонентов. Если связь объекта с набором ком-
понентов жестко прописана в коде, мы теряем эту 
гибкость.

Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   206   207   208   209   210   211   212   213   ...   313




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish