Anasayfa Eğitseller Oyun Yapımı FMOD kullanımı

FMOD kullanımı PDF Yazdır e-Posta
Kullanıcı Değerlendirmesi: / 1
ZayıfEn iyi 
Eğitseller - Oyun Yapımı
Cuma, 20 Ekim 2006 21:57

Bu derste FMOD'un kullanan basit bir uygulama yapacağız. Öncelikle FMOD'u kullanabilmek için http://www.fmod.org 'dan Fmod 3.75 i indimeniz gerekiyor. Daha sonra fmod.h ve fmod_errors.h ı ya derleyicinizin include klasörüne yada projenizin bulunduğu klasöre kopyalayın.


Main.cpp:

#include <stdio.h>
//windows için header'lar
#include<conio.h>
#include <windows.h>
// linux de derlemek için yukardakileri kaldırıp
// bunlar ekleyin
//#include "../../api/inc/wincompat.h"
#include <stdlib.h>
// fmod header'ları
#include "fmod.h"
#include "fmod_errors.h"

#include comment(lib, "fmodvc.lib")

// Pointer'ımızı yaratıyoruz.
FSOUND_SAMPLE *sample = 0;

int main()
{
   
// Dll versiyonunu karşılaştır
   
if (FSOUND_GetVersion() < FMOD_VERSION)
    {
       
// yanlış ise hata mesajı ver.
        printf("Dll versiyonu yanlıs.\n",FMOD_VERSION);
        exit(1);
    }

   
// FMOD u init'lıyoruz.
   
if (!FSOUND_Init(44100, 32, 0)) {
        printf("%sn", FMOD_ErrorString(FSOUND_GetError()));
        // Basarisiz olunursa program kapanacak
        exit(1);
    }

   
// Herşey tamamsa ses dosyasını yükle.
    //
sesin tekrarlamasını istemiyorsanız FSOUND_LOOP_NORMAL yerine
    //
FSOUND_NORMAL yazmalısınız
    sample = FSOUND_Sample_Load(FSOUND_UNMANAGED,"sample.ogg", FSOUND_LOOP_NORMAL | FSOUND_HW2D , 0, 0);
   
// Herhangi bos bir kanaldan ornegimizi caliyoruz.
    FSOUND_PlaySound(FSOUND_FREE,sample);

   
// Bir tusa basilmasini bekliyoruz
    getch();

   
// Ornegimizi saliyoruz
    FSOUND_Sample_Free(sample);
   
// ve Fmod u kapatiyoruz
    FSOUND_Close();
}


 

 

Fmod'daki bazı fonksiyonlar


// Bir kanali açip kapamaya yarar.
FSOUND_SetMute(int channel, bool mute);
// Kanalin sag yada soldan gelecegini belirler. 0 hep sol, 255 ise hep sag degeridir, 128 ise esit dagitmak için kullanilir
FSOUND_SetPan(int channel,int pan);
// Kanalin ses seviyesini ayarlar. 0 en az 255 en yuksek degerdir
FSOUND_SetVolume(int channel,int volume);
// Kanalda çalan sesi durdurur
FSOUND_StopSound(int channel);
// Bu fonksiyon ile sesin istediginiz kismini çaldirabilirisiniz.
FSOUND_SetCurrentPosition(int channel,int position);
// Kanalin orneklendirme frekansini degistirir, örnek olarak 44100, 22050 gibi
FSOUND_SetFrequency(int channel,int frequency);
// Fmod un içinde tanimli olan ses efektlerini uygulamaya saglar. Örnek, echo, reverb, chorus, distortion
FSOUND_FX_Enable(int channel,int fxtype);
// Kanaldaki sesi duraklatır
FSOUND_SetPaused(int channel,bool paused);
// Kanalin ses degerini dondurur ( 0 - 255 )
FSOUND_GetVolume(int channel);
// Kanalda oynayan sesi dondurur (pointer) aksi halde NULL dondurur
FSOUND_GetCurrentSample(int channel);
// Kanalda oynayan sesin orneklenme hizini dondurur
FSOUND_GetFrequency(int channel);
// Kanalda ses varsa TRUE yoksa FALSE dondurur
FSOUND_IsPlaying(int channel);


 

Bu fonksiyonları kullanabilmek için hangi kanaldan çalınacağını belirlememiz gerekiyor. Aşağıdaki örnekte olduğu gibi.

...
int channel;
channel = FSOUND_PlaySoundEx(FSOUND_FREE, samp1, NULL, TRUE);
FSOUND_PlaySound(channel,samp1);
FSOUND_SetVolume(channel,255);
...

Fmod hakkında daha detaylı bilgi için sdk'sındaki dökümanlara bakabilirsiniz. 

Gönderen Üye: Ercan Gerçek

  Yorum yok.
Yorum ekle. (0 yorum)

 

OyunGelistirici.net - Türk Oyun Yapımcılarının Buluşma Noktası

Bu sitede yazılan tüm yazıların hakları yazarlarına aittir. İzin alınmadan yayınlanamaz.

Bu sitede Firefox kullanmanız önerilir. En az 1024 x 768 masaüstü çözünürlüğü tavsiye edilir.