A-tit indd


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



Download 3,35 Mb.
Pdf ko'rish
bet214/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   210   211   212   213   214   215   216   217   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

294
Компонент (Component) — 
Паттерны программирования игр
• Объект-контейнер простой
. В отличие от вариан-
та с общим состоянием, где данные, используемые 
компонентами, принадлежат самому объекту-кон-
тейнеру, тут он вслепую передает сообщения. Это 
может пригодиться в передаче специфичной для 
областей информации без необходимости поме-
щать ее в объект-контейнер.
Удивительно, но тут нет идеального решения. В ито-
ге вы все равно будете использовать каждую опцию по-
немногу. Общее состояние полезно для базовых вещей, 
нужных каждому объекту по умолчанию, вроде размера 
или позиции.
Некоторые области различны, но все равно тесно свя-
заны. Например, анимация и рендеринг, пользователь-
ский ввод и ИИ, физика и столкновения. Если у вас есть 
отдельные компоненты для каждого члена такой пары, 
то проще всего позволить этим половинам знать друг 
о друге.
Сообщения хороши для «менее важного» взаимодей-
ствия. Принцип «выстрелил и забыл» подходит для та-
ких компонентов, как аудио, когда надо воспроизвести 
звук, например при столкновении двух элементов.
И, как всегда, я рекомендую начать с простого, а за-
тем по мере необходимости добавлять более сложные 
варианты коммуникации.
 Смотрите также
• Базовый класс 
GameObject
фреймворка Unity как 
раз основан на компонентах.
• В движке Delta3D с открытым кодом базовый класс 
GameActor
реализует этот паттерн с помощью дру-
гого базового класса с соответствующим названи-
ем 
ActorComponent
.
• Игровой фреймворк XNA от Microsoft содержит ба-
зовый класс 
Game
. В него включен набор объектов 
GameComponent
. В нашем примере компоненты 
«Банда четырех» назы-
вала этот паттерн По-
средник (Mediator) —
два или больше объекта 
общаются друг с другом 
не напрямую, а с помо-
щью перенаправления 
сообщений через про-
межуточный объект. 
В таком случае объект-
контейнер выступает 
в роли посредника.


используются на уровне индивидуальных игровых 
сущностей, XNA же реализует этот паттерн на уров-
не главного игрового объекта, хотя цель та же.
• Данный паттерн очень схож с паттерном Стратегия 
(Strategy) «Банды четырех». Суть обоих в контро-
ле поведения объекта и делегировании его отдель-
ным подчиненным объектам. Только в паттерне 
Стратегия (Strategy) объект «стратегии» обычно 
не имеет состояния — он инкапсулирует алгоритм, 
но не данные. Он определяет, 
как
объект ведет себя, 
а не 
что
собой представляет.
Компоненты более самодостаточны. Они часто 
содержат состояние, которое определяет объект 
и помогает определить его сущность. Тем не менее 
нет четкой границы. У вас могут быть компоненты, 
не нуждающиеся в состоянии. В этом случае вы мо-
жете свободно использовать один и тот же 
экзем-
пляр
компонента для множества объектов-контей-
неров. Тогда он будет себя вести практически как 
стратегия.



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   210   211   212   213   214   215   216   217   ...   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