×

VB.NET游戏开发 之 音乐篇

Kalet Kalet 发表于2009-03-20 12:00:13 浏览312 评论0

抢沙发发表评论

思路:现在游戏赚钱啦,以前做游戏,VB功能太弱,速度太慢,所以都没它的份,现在在.NET FrameWork下,内核一样,只是语法不同而已,用哪一种语言来开发都一样。在VB.NET中引用DirectX9.0的Direct3D可以做3D游戏,引用DirectSound可以播放前景音乐,引用AudioVideoPlayback可以播放背景音乐。
软件:先安装有VB.NET2003版,然后安装DirectX9.0C  SDK(可在微软网站下载)。

示例:播放音乐

VB.NET游戏开发 之 音乐篇

1、创建一个VB.NET应用程序,点“项目-添加引用”,在“.NET”选项卡中双击添加“Microsoft.DirectX.DirectSound”、“Microsoft.DirectX.AudioVideoPlayback”、“Microsoft.DirectX.Direct3D”等。
2、在窗体Form1代码里,在最上面引入名称空间:
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
Imports Microsoft.DirectX.DirectSound
Imports Microsoft.DirectX.AudioVideoPlayback

3、在窗体上放两个按钮:Button1和Button2,把它们的Tag属性值均设为“1”,Text设为“播放”。
4、在窗体上面定义几个对象变量,呆会要用到它:
    '-------前景声音
    Dim Ad  As DirectSound.Device
    Dim Buf As DirectSound.SecondaryBuffer
    '-------背景音乐
    Dim Audio As AudioVideoPlayback.Audio

5、两个按钮的单击事件过程:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button1.Tag.ToString = "1" Then
            Ad = New Device
            Ad.SetCooperativeLevel(Me.Handle, CooperativeLevel.Normal)VB.NET游戏开发 之 音乐篇
            Buf = New SecondaryBuffer("d:\1.wav", Ad)
            Buf.Play(0, BufferPlayFlags.Looping)
            Button1.Tag = "2"
        Else
            Buf.Stop()
            Button1.Tag = "1"
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Button2.Tag.ToString = "1" Then
            Audio = New AudioVideoPlayback.Audio("F:\MP3\丁香花.mp3", False)
            Audio.Play()
            Button2.Tag = "2"
        Else
            Audio.Stop()
            Button2.Tag = "1"
        End If
    End Sub

6、运行一下,按第一个按钮,播放前景音乐(只能是WAV文件),按第二个按钮,播放背景单乐(可以是MP3文件)。注意音乐文件的路径(下划线部份)你要自已改一下啦。

VB.NET游戏开发 之 音乐篇

待续:上面主要是声音播放,至于2D图形、3D图形的制作,偶还不会,会的请跟贴啊。。。



群贤毕至

访客