A-tit indd


Паттерны программирования игр



Download 3,35 Mb.
Pdf ko'rish
bet178/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   174   175   176   177   178   179   180   181   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Паттерны программирования игр
— Паттерны поведения
241
но «безопасная», так как при такой реализации ни-
что не может сломаться.
Вызовы, которые изменяют состояние, связы-
вают вас намного сильнее с другими частями кода, 
поэтому вы всегда должны знать, где происходит 
дело, и быть особенно аккуратными. Такие мето-
ды — первые кандидаты на то, чтобы обернуть их 
в предоставляемые операции более удобного для 
анализа базового класса.
• Если при реализации предоставляемая операция 
просто перенаправляет вызов во внешнюю систе-
му, то смысла в ней немного. В таком случае проще 
напрямую обратиться к внешнему методу.
Тем не менее даже простое перенаправление мо-
жет быть полезным: методы могут обращаться к та-
ким состояниям, которые не должны быть напря-
мую видны производным классам. Например, класс 
Superpower
предоставляет нечто подобное:
void playSound(SoundId sound)
{
soundEngine_.play(sound);
}
Эта операция просто переадресует вызов к полю 
soundEngine_
в классе 
Superpower
. Преимуще-
ством тут является инкапсулированность поля: оно 
остается недоступно подклассам напрямую.
 Должны ли методы предоставляться напрямую 
или через объекты, в которых они содержатся?
Используя паттерн, в конце концов вы можете прийти 
к тому, что ваш базовый класс загроможден огромным 
количеством методов. Избежать этого можно, переме-
стив некоторые методы в другие классы. Таким образом 
предоставляемые базовым классом операции будут воз-
вращать один из объектов.
Например, воспроизведение звука мы можем пропи-
сать прямо в коде класса 
Superpower
:
«Безопасная» в кавыч-
ках, ведь технически 
даже простое обраще-
ние к данным способно 
вызвать проблемы. Если 
игра многопоточная, вы 
можете считать что-то 
прямо в момент, когда 
будет производиться за-
пись. И если не соблю-
дать осторожность, ве-
лика вероятность 
получить некорректные 
данные.
Еще вариант: если со-
стояние игры строго де-
терминировано (что 
верно для большинства 
онлайн-игр, так как тре-
буется синхронизация 
между игроками) и вы 
попытаетесь получить 
доступ к чему-то за пре-
делами синхронизиро-
ванных данных, могут 
выскочить крайне опас-
ные ошибки недетерми-
нированности.



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   174   175   176   177   178   179   180   181   ...   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