Audio (Ses)
Oyun güzel bir ilerleme kaydetti; ancak hiç ses olmadığı için hâlâ biraz boş hissettiriyor. Bu bölümde bunu düzelteceğiz.
OpenGL bize ses yetenekleri için herhangi bir destek sunmuyor (oyun geliştirmenin diğer birçok yönü gibi). Ses dosyalarını bayt koleksiyonuna manuel olarak yüklemek, işleyip ses akışına dönüştürmek ve oyunumuzda kullanmak üzere birden fazla ses akışını uygun şekilde yönetmek gerekiyor. Bu oldukça karmaşık hale gelebilir ve biraz düşük seviyeli ses mühendisliği bilgisi gerektirir.
Ses akışlarını manuel olarak yüklemek isteyenler tabii ki bunu yapabilir. Ancak burada irrKlang adı verilen bir ses yönetim kütüphanesini kullanacağız.
IrrKlang

IrrKlang, WAV, MP3, OGG ve FLAC dosyaları dahil pek çok formatı oynatıp çalıştırabilen yüksek seviyeli, 2D ve 3D çapraz platform (Windows, Mac OS X, Linux) bir ses motorudur. Ayrıca kapsamlı biçimde ayarlanabilen reverb, gecikme ve distortion gibi çeşitli ses efektleri de sunar.
3D ses, bir ses kaynağının 3 boyutlu bir konuma sahip olabileceği anlamına gelir; bu konum, kameranın ses kaynağına olan mesafesine göre ses seviyesini zayıflatarak 3B dünyada doğal bir his yaratır (3B bir oyunda silah sesini düşünün; çoğu zaman yalnızca sesin yönü/konumundan nereden geldiğini anlayabilirsiniz).
IrrKlang, çoğu ses dosyasını yalnızca birkaç satır kodla oynatıp çalıştırabileceğiniz kullanımı kolay bir ses kütüphanesidir; Breakout oyunumuz için mükemmel bir adaydır. IrrKlang'ın biraz kısıtlayıcı bir lisansı olduğuna dikkat edin: ticari olmayan amaçlarla serbestçe kullanabilirsiniz; ancak ticari olarak kullanmak istediğinizde pro sürümünü satın almanız gerekir.
irrKlang'ı indirme sayfasından edinebilirsiniz; bu bölüm için 1.5 sürümünü kullanıyoruz. irrKlang kapalı kaynaklı olduğundan kütüphaneyi kendimiz derleyemiyoruz; önceden derlenmiş kütüphane dosyalarıyla yetinmemiz gerekiyor.
irrKlang başlık dosyalarını dahil ettikten, (64-bit) kütüphanesini (irrKlang.lib) bağlayıcı ayarlarına ekledikten ve dll dosyalarını uygun konumlara (genellikle .exe ile aynı klasör) kopyaladıktan sonra kullanmaya hazırız. MP3 dosyaları yüklemek istiyorsanız ikpMP3.dll dosyasını da eklemeniz gerektiğini unutmayın.
Müzik Eklemek
Bu oyun için özellikle küçük bir müzik parçası hazırladım. Buradan ulaşabileceğiniz bu parça, oyunun arka plan müziği olarak kullanılacak. Oyun başladığında çalmaya başlayacak ve oyuncu oyunu kapatana kadar döngüde devam edecek.
Bunu Breakout oyununa eklemek irrKlang kütüphanesiyle son derece kolaydır. irrKlang başlık dosyasını dahil eder, bir irrKlang::ISoundEngine oluşturur, createIrrKlangDevice ile başlatırız; ardından ses dosyalarını yükleyip oynatmak için motoru kullanırız:
Burada tüm sesle ilgili kodlar için kullanacağımız bir SoundEngine oluşturduk. Ses motorunu başlattıktan sonra ses oynatmak için yalnızca play2D fonksiyonunu çağırmamız gerekiyor. İlk parametre dosya adı, ikinci parametre ise dosyanın döngüde (bitince tekrar) oynatılıp oynatılmayacağı.
Ses Efektleri Eklemek
Müzik tek başına yeterli değil; oyunda ilginç bir şey olduğunda —örneğin bir tuğlaya çarptığımızda veya power-up aktifleştirdiğimizde— oyuncuya ekstra geri bildirim vermek için ses efektleri çalmak istiyoruz. Kullanacağımız ses dosyaları (freesound.org'un sağladığı):
Top solid olmayan bir bloğa çarptığında
Top solid bir bloğa çarptığında
Oyuncu paddle'ı bir power-up bloğuyla çarpıştığında
Top oyuncu paddle'ından sektiğinde
Bir çarpışma gerçekleştiğinde ilgili sesi oynatıyoruz. Güncellenmiş oyun koduna buradan ulaşabilirsiniz; ses efektlerini uygun konumlara kolayca ekleyebilirsiniz.
Hepsini bir araya getirdiğimizde çok daha eksiksiz hissettiren bir oyun elde ediyoruz.
IrrKlang, gelişmiş bellek yönetimi, ses efektleri veya ses olay callback'leri gibi ses kontrolü üzerinde çok daha ayrıntılı kontrol imkânı sunar. Basit C++ eğitimlerine göz atın ve özelliklerini denemeye çekinmeyin.
Last updated