A-tit indd


• Их сложно обновлять последовательно



Download 3,35 Mb.
Pdf ko'rish
bet276/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   272   273   274   275   276   277   278   279   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

• Их сложно обновлять последовательно
. Допу-
стим, на пиратском корабле слишком много тро-
феев. Нам надо знать общий вес всего, что на нем 
находится. Мы 
могли бы
использовать данный ша-
блон и реализовать грязный флаг для суммарно-
го веса. Каждый раз, добавляя или убирая награду, 
мы устанавливали бы флаг. А когда нам потребо-
валось бы посчитать суммарный вес, мы складыва-
ли бы вес всех трофеев и очищали флаг.
Но намного проще хранить 
текущий общий 
вес
. Когда мы добавляем или убираем объект, мы 
просто прибавляем или вычитаем его вес. Мы мо-
жем просто «платить по ходу» и держать производ-
ные данные в актуальном состоянии — явно более 
приятный выбор по сравнению с использованием 
данного паттерна и вычислением суммарного веса 
каждый раз заново.
Может показаться, что грязные флаги используют-
ся редко, но периодически вам будут попадаться слу-
чаи, где вы сможете его применить. Если поискать слово 
dirty по коду обычной игры, вы увидите, где этот пат-
терн обычно используется.
Я также находил много 
комментариев, где раз-
работчики извиняются 
за «грязные» костыли.


Паттерны программирования игр
— Паттерны оптимизации
377
Имейте в виду
После того как вы убедите себя, что этот паттерн вам 
подходит, есть несколько мелочей, которые могут доста-
вить вам неудобство.
Можно поплатиться, если откладывать 
вычисления слишком надолго
Данный паттерн откладывает некоторые медленные вы-
числения до тех пор, пока не понадобится их результат. 
Однако когда результат нужен, он нужен 
прямо сейчас

Но ведь мы потому и используем паттерн, что эти вы-
числения медленные!
Мы все еще можем вычислить мировые координаты до-
статочно быстро, в пределах одного кадра — в нашем при-
мере. Но существуют ситуации, где на получение резуль-
тата уходит очень много времени. И если игра не 
начнет
вычисления, пока пользователь не запросит результат, по-
следствием могут стать неприятные визуальные эффекты.
Есть и другая особенность отложенных вычисле-
ний: если что-то пошло не так, вычисления могут вовсе 
не быть выполнены. Когда вы используете этот паттерн 
для сохранения состояния в более устойчивой форме, 
такое особенно неприятно.
Например, текстовые редакторы знают, если доку-
мент находится в «несохраненном состоянии». Эта не-
большая звездочка в строке имени файла буквально и 
есть визуализация грязного флага (рис. 18.5). Первич-
ные данные — открытый документ в памяти, а произ-
водные — данные на диске.

Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   272   273   274   275   276   277   278   279   ...   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