A-tit indd



Download 3,35 Mb.
Pdf ko'rish
bet142/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   138   139   140   141   142   143   144   145   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Подклассы сущностей?!
Наверняка среди читателей есть те, кто просто покрыл-
ся мурашками, из-за того что я использую наследование 
от главного класса 
Entity,
определяя разное поведе-
ние. Ну а если вы не видите проблемы, то я поясню.
Когда игровая индустрия в ходе эволюции вышла 
из океана ассемблерного кода 6502 и вертикальных га-
сящих импульсов на берега объектно-ориентированных 
языков, разработчики попали в безумный мир архитекту-
ры программного обеспечения. Одной из главных причуд 
было использование наследования. Иерархии наследова-
ния напоминали Византийские башни, которые были на-
столько высокими, что были способны заслонить солнце.
В настоящей программе 
вы использовали бы от-
дельный класс для на-
бора, но я использую 
простой массив, чтобы 
сделать пример как 
можно более простым.
Как предполагает имя 
метода, это паттерн Иг-
ровой цикл (Game Loop) 
(с. 161).
Между нами говоря, мне 
кажется, это слишком 
далеко
от подклассов. 
Лично я избегаю их, 
но считаю, что делать 
догмой 
не
использова-
ние наследования 
так же плохо, как и дог-
матично его использо-
вать везде.


Паттерны программирования игр
— Паттерны очередности
191
Идея оказалась ужасной: никто не мог поддерживать 
огромные иерархии наследования, программисты чаще 
оказывались погребенными под завалами кода. «Банда 
четырех» предвидела это еще в 1994 году, когда писала: 
«Вместо иерархии классов лучше использовать “компо-
зицию объектов”».
Когда понимание ситуации проникло в игровую ин-
дустрию, единственным решением стал паттерн Компо-
нент (Component) (с. 272). При его использовании метод 
update()
принадлежит одному из 
компонентов
сущно-
сти, а не самой 
Entity
, что позволяет избежать созда-
ния сложной иерархии классов сущностей для опреде-
ления и повторного использования поведения. При его 
использовании мы можем смешивать и сопоставлять 
компоненты.
Если бы я писал настоящую игру, я, возможно, так 
и сделал бы. Но глава не о компонентах, она о методах 
update()
. А самый простой способ вам их продемонстри-
ровать — отстраниться от некоторых деталей, поместить 
метод прямо в 
Entity
и создать несколько подклассов.

Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   138   139   140   141   142   143   144   145   ...   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