然而开发游戏需要对DirectX的调用,原来除了C++没有其他语言可以胜任这份工作,虽然DirectX7.0SDK加入了对VB的支持,但是VB毕竟能力有限,无法胜任这份严峻的工作,游戏可以说是最吃资源的程序,VB的速度无法完成。即使做出个游戏也被人说做不入流。这样一来VB程序员无法实现自己的梦想了。
.net推出了,VB.net的性能已经可以和VC++媲美,用微软的说法内核是一样的,只不过是语法的差异。VB程序员大喜,这样再也不会被C++程序员说成是傻瓜程序员了,你们能做的我们一样可以。
好了现在切入正题,现在我们来做一个简单的游戏。
首先先要对游戏有个整体构架才行,VB.net中对类的设定比较可爱,功能也非常强大,不用一用起不太对不起微软了。
调用DirectX,首先先要安装DirectX7.0以上版本的SDK开发包,然后新建一个项目,选择Windwos应用程序。
然后选择引用DirectX方法是,选择引用->COM->DirectX7 for VisualBasic Type Library
好了,至此你已经引用了DirectX7.0
首先为了方便使用我们调用DirectX7.0,所以我们声明
Imports DxVBLib
然后我们定义一个DirectX7.0的对象
Public DirectX As New DirectX7
声明一个DirectDraw对象,用于2D游戏的绘图
Public DDraw As DirectDraw7
DDraw = DirectX.DirectDrawCreate("")
然后要设置DirectDraw的协作层
Call DDraw.SetCooperativeLevel(Me.Handle.ToInt32, CONST_DDSCLFLAGS.DDSCL_FULLSCREEN Or CONST_DDSCLFLAGS.DDSCL_ALLOWMODEX Or CONST_DDSCLFLAGS.DDSCL_EXCLUSIVE)
其中用到的常数有
CONST_DDSCLFLAGS.DDSCL_FULLSCREEN表示全屏模式
CONST_DDSCLFLAGS.DDSCL_ALLOWMODEX表示允许使用ModeX
CONST_DDSCLFLAGS.DDSCL_EXCLUSIVE表示独占模式
在DirectX的编程中会用到大量的常数,这里教你一个技巧,在使用的地方打空格,VB.net会列出可以使用的所有常数,非常好用。