A-tit indd


Метод Update (Update method) —  Паттерны программирования игр



Download 3,35 Mb.
Pdf ko'rish
bet138/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   134   135   136   137   138   139   140   141   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

186
Метод Update (Update method) — 
Паттерны программирования игр
влево. Это было явно определено тем фрагментом, ко-
торый выполнялся в тот момент времени.
Когда мы перешли к новой форме «один кадр в один 
момент времени», нам пришлось создать переменную 
patrollingLeft
, чтобы отслеживать движение. Когда 
мы возвращаемся из функции, позиция, где мы находи-
лись, теряется. Поэтому нам надо явно задать и хранить 
нужную информацию — иначе не восстановить положе-
ние в следующем кадре.
Здесь может помочь паттерн Состояние (State) (с. 117). 
Частично по этой причине конечные автоматы так часто 
применяются в играх. Они (как подразумевает их вто-
рое название — машины состояний) хранят то состоя-
ние, в которое вы можете вернуться, если перешли к вы-
полнению другого фрагмента кода.
Поведение объектов симулируется каждый кадр, 
но они все равно не действуют параллельно
При использовании этого паттерна игра циклически 
проходит через весь набор объектов и обновляет каж-
дый из них. Внутри метода 
update()
большинство объ-
ектов могут взаимодействовать с остальным игровым 
миром, включая другие объекты, которые также могут 
обновляться. То есть 
порядок
обновления объектов име-
ет значение.
Если А идет перед В в списке объектов, то во время 
обновления А увидит В в предыдущем состоянии. В же 
увидит А в 
новом
состоянии, поскольку А уже обновил-
ся в этом кадре. Даже если, с точки зрения пользовате-
ля, все происходит одновременно, ядро игры все равно 
производит вычисления последовательно. Получается 
настоящая «очередь», только в рамках одного кадра.
В большинстве случаев такой вариант даже хорош, 
по крайней мере логичен. Параллельное обновление 
объектов приводит к некоторым сюрпризам. Представь-
те себе шахматы, где белые и черные ходят одновремен-
но. Обе стороны пытаются сделать ход в одну, на данный 
момент пустую, клетку. И как в этом случае быть?
Если по каким-либо 
причинам вы решите, 
что 
не
хотите игру, рабо-
тающую в последова-
тельном режиме, то вам 
понадобится паттерн 
Двойной буфер (Double 
Buffer) (с. 142). Он сде-
лает порядок обновле-
ния А и В не имеющим 
значения, поскольку они 
оба
будут видеть преды-
дущие состояния друг 
друга.



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   134   135   136   137   138   139   140   141   ...   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