用VB编写DirectX7.0游戏(上)
2008-02-23 06:56:37来源:互联网 阅读 ()
* 对于Visual Basic的支持。用户可以使用类库在Visual Basic环境下开发基于DirectX的程序。
* 提供更多DirectX3D立即模式(Immediate Mode)下的API函数,以支持DirectX7中新的3D特效,包括立体环境映射、顶点混合等。
* DirectMusic支持DownLoadable Sound Level 2标准。
* DirectInput支持8按键的游戏杆设备,同时支持Microsoft的力反馈摇杆。SDK库提供了读取力反馈效果文件的方法。同时提供了Force Editor程序来建立效果。
对于VB爱好者来说,新的SDK库终于提供了完整的对VB的支持,现在终于可以使用Visual Basic来编写DirectX的程序了。
一、DirectX SDK库的安装
微软提供的SDK库是一个“重”达129M的dx7sdk.exe自解压缩文件,你可以上网下载或者从配套光盘上获得这个文件。双击文件就会弹出Winzip自解压缩对话框。在弹出的WinZip Self-Extract DK7SDK.EXE窗口中输入解压缩文件的路径,然后点击“Unzip”按钮解压缩SDK文件:
要注意的是,dx7sdk.exe解压缩之后的体积有220M,硬盘比较紧张的读者在解压缩之前首先看看你的硬盘的容量是否足够。
解压缩完毕之后,进入解压缩的目录中,双击Setup.exe文件就可以安装DirectX7.0 SDK文件了。安装是采用标准的InstallShield界面,玩Windows的读者应该对这种安装界面驾轻就熟,只要跟着安装提示一步一步地走就可以了。安装完毕之后,安装程序会在开始菜单中添加一个Microsoft DirectX 7 SDK的菜单,其中包括DirectX 7设置工具、VB范例和SDK Help等菜单项。
现在开始进入VB,开始我们的DirectX的VB编程。在这里我们使用的是VB6企业版(英文)。Windows98中文版。
打开VB,点击菜单中的 Project | References 项,在Object Library 列表中会有一项:DirectX 7.0 For Visual Basic Type Library 列表项,这个就是DirectX7.0 VB类库,选中该项,再选“ok”按钮,就可以将库加入工程文件中。
二、DirectX编程初步
1 DirectX7对象
DirectX7对象是DirectX VB对象中其他所有对象的服务和起始对象,这个对象包含了建立诸如DirectDraw、 Direct3D、 DirectSound、 DirectInput等对象的方法。同时该对象还包含了一系列的三维控件顶点和距阵的操作函数以及一些DirectX系统函数。在VB中可以通过Dim...New来直接定义和初始化一个DirectX7对象,例如:
Dim DirectX As New DirectX7
当建立成功一个DirectX7对象之后,就可以使用该对象的DirectDrawCreate、Direct3DRMCreate等方法建立DirectDraw、Direct3D对象了。
DirectX7对象范例1:获得系统中的DirectDraw和DirectSound驱动
建立一个新的工程文件,点击菜单中的 Project | References 项,在Object Library 列表中选中DirectX 7.0 For Visual Basic Type Library 项后按确定按钮(以下的程序都需要这个步骤,后面将不再做说明)。然后在Form1中加入一个ListBox控件和四个CommandButton控件,在Form1的代码窗口中加入以下代码:
Option Explicit
Dim DirectX As New DirectX7
Dim DDEnum As DirectDrawEnum
Dim DDSound As DirectSoundEnum
Private Sub Command1_Click()
Dim Count, i As Integer
Set DDEnum = DirectX.GetDDEnum
Count = DDEnum.GetCount
List1.Clear
For i = 1 To Count
List1.AddItem DDEnum.GetDescription(i)
Next i
Set DDEnum = Nothing
End Sub
Private Sub Command2_Click()
Dim Count, i As Integer
Set DDEnum = DirectX.GetDDEnum
Count = DDEnum.GetCount
List1.Clear
For i = 1 To Count
List1.AddItem DDEnum.GetName(i)
Next i
Set DDEnum = Nothing
End Sub
Private Sub Command3_Click()
Dim Count, i As Integer
Set DDSound = DirectX.GetDSEnum
Count = DDSound.GetCount
List1.Clear
For i = 1 To Count
List1.AddItem DDSound.GetDescription(i)
Next i
End Sub
Private Sub Command4_Click()
Dim Count, i As Integer
Set DDSound = DirectX.GetDSEnum
Count = DDSound.GetCount
List1.Clear
For i = 1 To Count
List1.AddItem DDSound.GetName(i)
Next i
End Sub
Private Sub Form_Load()
Command1.Caption = “DirectDraw驱动描述”
Command2.Caption = “DirectDraw驱动名称”
Command3.Caption = “DirectSound驱动描述”
Command4.Caption = “DirectSound驱动名称”
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set DirectX = Nothing
End Sub
运行程序,分别点击不同的按钮,在列表框中就会出现相应的设备驱动名和描述。
2 DirectDraw7对象
DirectDraw是一个与Windows 图形系统接口(GDI)相兼容的直接操作显示设备的软件接口。DirectDraw提供与硬件无关性的同时允许直接操作显存。程序只要使用一些基本的标准硬件约定,如:RGB及YUV色彩格式及解析度。你无须调用特殊的过程来使用显存块移动(Blitter)及调色板。使用DirectDraw,你可简单操作显存,完全使用各种硬件特性而不必理会各种不同硬件之间的差异。
2.1 建立DirectDraw对象
DirectDraw7对象是DirectX7中的DirectDraw对象,你需要首先建立一个DirectX7对象,然后使用该对象的DirectDrawCreate方法来建立DirectDraw7对象。例如:
Dim DX As New DirectX7
Dim DDraw As DirectDraw7
Set DDraw = DX.DirectDrawCreate(“”)
2.2 建立协作层
当建立了一个DirectDraw对象之后,首先要设定DirectDraw的协作层。实现的方法是调用DirectDraw对象的SetCooperativeLevel函数。该函数的定义是:
object.SetCooperativeLevel( hdl As Long, flags As CONST_DDSCLFLAGS)
其中参数hdl指定程序的窗口句柄,参数flag决定程序运行的方式,函数调用
DDraw.SetCooperativeLevel Me.hWnd, DDSCL_NORMAL
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Access97的报表解决方案
下一篇:锁住数据库中的表
- 用VB编写DirectX7.0游戏(上) 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash