Minggu, 01 November 2015

Jack Onil Bab-3 Efek Suara

Sebuah game tanpa suara, ibarat laut tanpa garam. Suara berperan besar dalam sebuah game, sebab dapat menambah kesenangan pemain dalam memainkan sebuah game.


Efek suara pada sebuah game mempunyai andil besar bagi game tersebut untuk membuatnya menjadi popular. Sebagai contoh game Final Fantasy, pada saat game ini dibuat film animasinya efek suara yang ada pada game Final Fantasy tersebut tetap dipakai di filmnya, dan tidak hanya itu setiap gamer yang mendengar efek suaranya pasti akan ingat bahwa suara  tersebut berasal dari game Final Fantasy, walaupun gamer  sudah tidak  memainkan lagi game tersebut selama bertahun-tahun.

3.1 Multimedia MCI
Untuk menambahkan efek suara ke dalam program game yang akan kita buat tidaklah sulit, Visual Basic telah menyediakan fasilitas tersebut dan Anda tinggal menggunakannya.

Efek suara pada program game ini akan dibuat dengan menggunakan Multimedia MCI.  Untuk menggunakan Multimedia MCI Anda harus menambahkan kontrolnya ke dalam toolbox dengan cara load file Microsoft Multimedia Control 6.0 (MCI32.OCX).

Berikut cara untuk menambahkan efek suara ke dalam program grafik yang sedang Anda buat.

Klik menu Project , lalu pilih Components.


Pilih Microsoft Mutimedia Control 6.0, klik pada checkbox lalu klik tombol Apply.


Di dalam toolbox akan bertambah MMControl seperti gambar di bawah. Lalu klik tombol Close.


Tambahkan MMControl ke dalam Form1, lalu ubah properties MMControl1 Visible menjadi False.


3.2 Memainkan Suara
Setelah MMControl ditambahkan pada form, langkah selanjutnya adalah load file suara wave ke dalam MMControl yang kita buat sebelumnya. Di bawah ini ogut berikan contoh cara untuk load file suara wave ke MMControl.

Public Sub Load_All_Sound()
    'Suara 1
    Form1.MMControl1.Notify = False
    Form1.MMControl1.Wait = True
    Form1.MMControl1.Shareable = False
    Form1.MMControl1.DeviceType = "WaveAudio"
    Form1.MMControl1.Filename = "wave\sound1.wav"
    Form1.MMControl1.Command = "Open"
    
    'Suara 2
    Form1.MMControl2.Notify = False
    Form1.MMControl2.Wait = True
    Form1.MMControl2.Shareable = False
    Form1.MMControl2.DeviceType = "WaveAudio"
    Form1.MMControl2.Filename = "wave\sound2.wav"
    Form1.MMControl2.Command = "Open"
    
    'Suara 3
    Form1.MMControl3.Notify = False
    Form1.MMControl3.Wait = True
    Form1.MMControl3.Shareable = False
    Form1.MMControl3.DeviceType = "WaveAudio"
    Form1.MMControl3.Filename = "wave\bg.wav"
    Form1.MMControl3.Command = "Open"
    
End Sub

Setelah proses load file wave selesai, langkah berikutnya suara tersebut harus dimainkan dengan perintah sebagai berikut.

Public Sub Play_Sound1()
    Form1.MMControl1.Command = "Prev"
    Form1.MMControl1.Command = "Play"
End Sub

Public Sub Play_Sound2()
    Form1.MMControl2.Command = "Prev"
    Form1.MMControl2.Command = "Play"
End Sub

Public Sub Play_Sound3()
    Form1.MMControl3.Command = "Prev"
    Form1.MMControl3.Command = "Play"
End Sub

Pada contoh program di folder Bab3_EfekSuara ogut menggunakan GetKeyState untuk memicu agar suara dimainkan.

Private Sub Keyboard_Ditekan()
    
    'keluar dari program bila Escape ditekan
    If (GetKeyState(vbKeyEscape) And &H1000) Then
        Selesai = True
    End If
    
    '1 play suara 1
    If (GetKeyState(vbKey1) And &H1000) Then
        Play_Sound1
    End If
    
    '2 stop suara 1
    If (GetKeyState(vbKey2) And &H1000) Then
        Form1.MMControl1.Command = "Stop"
    End If
    
    '3 play suara 2
    If (GetKeyState(vbKey3) And &H1000) Then
        Play_Sound2
    End If
    
    '4 stop suara 2
    If (GetKeyState(vbKey4) And &H1000) Then
        Form1.MMControl2.Command = "Stop"
    End If
    
End Sub

3.3 Suara Latar Belakang
Sebuah game akan mempunyai nilai lebih jika menggunakan suara latar belakang atau biasa kita sebut dengan background sound.

Suara latar belakang mempunyai durasi lebih panjang dari efek suara dan dimainkan secara terus menerus tanpa henti.

Untuk membuat suara latar belakang  dengan Visual Basic caranya sama dengan subbab 3.2 hanya perlu ditambahkan sebuah kondisi pada main looping agar suara dimainkan secara terus menerus tanpa henti.

'main looping
Do While Not Selesai
    
        'deteksi keyboard dan proses render
        'diulang hingga selesai
        Keyboard_Ditekan
        Render_Objek
        
        'agar suara BG terus mengulang
        If Form1.MMControl3.NotifyValue = 1 Then
            Play_Sound3
        End If
        
        'swapbuffer dan doevent
        SwapBuffers (My_Form.hDC)
        DoEvents
Loop

Salam Jack Onil


Heriady
heriady.yoh@gmail.com




Artikel terkait

Membuat Game dengan VB 6