A-tit indd


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



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

Паттерны программирования игр
— Паттерны уменьшения связанности
299
Что скажете?
Добавим нашей игре звук. Хоть люди и получают боль-
шую часть информации визуально, звуки сильнее влия-
ют на наше эмоциональное восприятие и физическое 
ощущение мира. Правильная симуляция эха может пре-
вратить простой черный экран в огромную темную пе-
щеру, а скрипичное адажио в нужный момент может 
заставить мурашки пробежать по коже, а сердце — за-
биться чаще.
Чтобы наделить нашу игру звуками, мы начнем с са-
мого очевидного подхода и посмотрим, к чему это при-
ведет. Мы создадим небольшой «аудиодвижок», у кото-
рого будет API для проигрывания звука с определенным 
идентификатором и значением громкости:
class Audio
{
public:
static void playSound(SoundId id, int volume);
};
Данный код загружает определенный аудиоресурс, 
находит свободный канал и воспроизводит его. Глава 
не о том, как написать настоящий API для аудиосисте-
мы, поэтому представим, что он магическим образом 
уже реализован где-то еще. Используя его, метод мы на-
пишем примерно так:
void Audio::playSound(SoundId id, int volume)
{
ResourceId resource = loadSound(id);
int channel = ndOpenChannel();
if (channel == –1) return;
startSound(resource, channel, volume);
}
Проверяем его, загружаем несколько аудиофайлов и на-
чинаем запрашивать вызовы метода 
playSound()
по все-
му коду. Например, в коде нашего пользовательского 
И хотя я обычно откре-
щиваюсь от использова-
ния паттерна Одиночка 
(Singleton) (с. 97), тут он, 
скорее всего, будет наи-
более подходящим, так 
как большинство ком-
пьютеров имеют только 
один набор колонок. 
Но я поступлю еще 
проще и использую ста-
тический метод.



Download 3,35 Mb.

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