A-tit indd



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

Центральная шина событий
Большинство игр, в отличие от данной, не основаны 
на управлении событиями. Хотя большинство все равно 
имеют собственную очередь событий, словно позвоноч-
ник для нервной системы. Вы можете услышать употреб-
ление таких терминов, как «центральная», «глобальная» 
или «главная». Они используются в высокоуровневом 
А 
прерывания,
вызван-
ные операционной си-
стемой, наоборот, рабо-
тают 
именно
так. Когда 
возникает событие пре-
рывания, ОС останавли-
вает любой процесс ва-
шего приложения 
и заставляет его пере-
скочить в код обра-
ботки прерывания. 
Именно из-за такой об-
рывистости с прерыва-
ниями достаточно 
сложно работать.
Если вам интересно, 
по-
чему
они не являются 
событийно-управля-
емыми, обратитесь 
к главе «Игровой цикл 
(Game Loop)» (с. 161).


298
Очередь событий (Event Queue) — 
Паттерны программирования игр
взаимодействии между игровыми системами, чтобы 
те оставались не связанными.
Предположим, в игре есть система обучения, которая 
отображает подсказки при наступлении определенных 
внутриигровых событий. Например, когда игрок убива-
ет своего первого монстра в игре, высвечивается окош-
ко «Нажмите Х, чтобы собрать добычу!».
Скорее всего, ваш код игрового процесса и сражений 
и без того достаточно сложный. И совершенно точно вы 
не хотели бы его еще усложнять бесконечными провер-
ками для срабатывания обучающих подсказок. Исполь-
зуйте центральную очередь событий. Любая игровая си-
стема может отправлять туда сообщения, поэтому код, 
ответственный за сражение, будет просто сигнализи-
ровать «враг мертв» каждый раз, когда игрок поражает 
очередного противника.
Любая система может 
получать
события из очереди. 
Движок обучающей системы регистрируется в очереди 
и сообщает ей, что хочет получать информацию о собы-
тиях «враг мертв». Таким образом, информация о смер-
ти врага передается из системы сражения в обучающую 
систему без их непосредственного взаимодействия.
Рис. 15.2.
Система сражений и обучающая система 
взаимодействуют через общую очередь
Я думал использовать это как пример в оставшейся 
части главы, но на самом деле я не фанат таких больших 
глобальных систем. Очереди событий не обязательно 
должны создаваться для взаимодействия во всем игро-
вом движке. Они могут быть полезными и в рамках од-
ного класса или пространства.
Систему обучения неве-
роятно сложно внедрить 
должным образом. 
Да и большинство игро-
ков не удосуживаются 
обращать на нее внима-
ние, так что это выгля-
дит как простая трата 
времени. Но та часть 
пользователей, которой 
данная система необхо-
дима, в итоге будет вам 
сильно благодарна, ведь 
их знакомство с игрой 
станет проще и прият-
нее.
Такая модель — с общим 
пространством, куда 
сущности могут поме-
щать информацию или 
получать о ней уведом-
ления, — похожа на си-
стему искусственного 
интеллекта с 
доской объ-
явлений
.



Download 3,35 Mb.

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