亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用VB編寫DirectX7.0游戲(上)

2019-11-18 17:50:02
字體:
來源:轉載
供稿:網友
DirectX7.0終于出現了,同前面DirectX6相同,版本7也帶了一個龐大(129M)的SDK開發庫,同DirectX6SDK庫相比,DirectX7的SDK庫提供了以下新的功能:
*對于VisualBasic的支持。用戶可以使用類庫在VisualBasic環境下開發基于DirectX的程序。
*提供更多DirectX3D立即模式(ImmediateMode)下的API函數,以支持DirectX7中新的3D特效,包括立體環境映射、頂點混合等。
*DirectMusic支持DownLoadableSoundLevel2標準。
*DirectInput支持8按鍵的游戲桿設備,同時支持Microsoft的力反饋搖桿。SDK庫提供了讀取力反饋效果文件的方法。同時提供了ForceEditor程序來建立效果。
對于VB愛好者來說,新的SDK庫終于提供了完整的對VB的支持,現在終于可以使用VisualBasic來編寫DirectX的程序了。
一、DirectXSDK庫的安裝
微軟提供的SDK庫是一個“重”達129M的dx7sdk.exe自解壓縮文件,你可以上網下載或者從配套光盤上獲得這個文件。雙擊文件就會彈出Winzip自解壓縮對話框。在彈出的WinZipSelf-ExtractDK7SDK.EXE窗口中輸入解壓縮文件的路徑,然后點擊“Unzip”按鈕解壓縮SDK文件:
要注意的是,dx7sdk.exe解壓縮之后的體積有220M,硬盤比較緊張的讀者在解壓縮之前首先看看你的硬盤的容量是否足夠。
解壓縮完畢之后,進入解壓縮的目錄中,雙擊Setup.exe文件就可以安裝DirectX7.0SDK文件了。安裝是采用標準的InstallShield界面,玩Windows的讀者應該對這種安裝界面駕輕就熟,只要跟著安裝提示一步一步地走就可以了。安裝完畢之后,安裝程序會在開始菜單中添加一個MicrosoftDirectX7SDK的菜單,其中包括DirectX7設置工具、VB范例和SDKHelp等菜單項。
現在開始進入VB,開始我們的DirectX的VB編程。在這里我們使用的是VB6企業版(英文)。Windows98中文版。
打開VB,點擊菜單中的PRoject|References項,在ObjectLibrary列表中會有一項:DirectX7.0ForVisualBasicTypeLibrary列表項,這個就是DirectX7.0VB類庫,選中該項,再選“ok”按鈕,就可以將庫加入工程文件中。
二、DirectX編程初步
1DirectX7對象
DirectX7對象是DirectXVB對象中其他所有對象的服務和起始對象,這個對象包含了建立諸如DirectDraw、Direct3D、DirectSound、DirectInput等對象的方法。同時該對象還包含了一系列的三維控件頂點和距陣的操作函數以及一些DirectX系統函數。在VB中可以通過Dim...New來直接定義和初始化一個DirectX7對象,例如:
DimDirectXAsNewDirectX7
當建立成功一個DirectX7對象之后,就可以使用該對象的DirectDrawCreate、Direct3DRMCreate等方法建立DirectDraw、Direct3D對象了。
DirectX7對象范例1:獲得系統中的DirectDraw和DirectSound驅動
建立一個新的工程文件,點擊菜單中的Project|References項,在ObjectLibrary列表中選中DirectX7.0ForVisualBasicTypeLibrary項后按確定按鈕(以下的程序都需要這個步驟,后面將不再做說明)。然后在Form1中加入一個ListBox控件和四個CommandButton控件,在Form1的代碼窗口中加入以下代碼:
OptionExplicit
DimDirectXAsNewDirectX7
DimDDEnumAsDirectDrawEnum
DimDDSoundAsDirectSoundEnum

PrivateSubCommand1_Click()
DimCount,iAsInteger
SetDDEnum=DirectX.GetDDEnum
Count=DDEnum.GetCount
List1.Clear
Fori=1ToCount
List1.AddItemDDEnum.GetDescription(i)
Nexti
SetDDEnum=Nothing
EndSub

PrivateSubCommand2_Click()
DimCount,iAsInteger
SetDDEnum=DirectX.GetDDEnum
Count=DDEnum.GetCount
List1.Clear
Fori=1ToCount
List1.AddItemDDEnum.GetName(i)
Nexti
SetDDEnum=Nothing
EndSub

PrivateSubCommand3_Click()
DimCount,iAsInteger
SetDDSound=DirectX.GetDSEnum
Count=DDSound.GetCount
List1.Clear
Fori=1ToCount
List1.AddItemDDSound.GetDescription(i)
Nexti
EndSub

PrivateSubCommand4_Click()
DimCount,iAsInteger
SetDDSound=DirectX.GetDSEnum
Count=DDSound.GetCount
List1.Clear
Fori=1ToCount
List1.AddItemDDSound.GetName(i)
Nexti
EndSub

PrivateSubForm_Load()
Command1.Caption=“DirectDraw驅動描述”
Command2.Caption=“DirectDraw驅動名稱”
Command3.Caption=“DirectSound驅動描述”
Command4.Caption=“DirectSound驅動名稱”
EndSub

PrivateSubForm_Unload(CancelAsInteger)
SetDirectX=Nothing
EndSub
運行程序,分別點擊不同的按鈕,在列表框中就會出現相應的設備驅動名和描述。
2DirectDraw7對象
DirectDraw是一個與Windows圖形系統接口(GDI)相兼容的直接操作顯示設備的軟件接口。DirectDraw提供與硬件無關性的同時允許直接操作顯存。程序只要使用一些基本的標準硬件約定,如:RGB及YUV色彩格式及解析度。你無須調用特殊的過程來使用顯存塊移動(Blitter)及調色板。使用DirectDraw,你可簡單操作顯存,完全使用各種硬件特性而不必理會各種不同硬件之間的差異。
2.1建立DirectDraw對象
DirectDraw7對象是DirectX7中的DirectDraw對象,你需要首先建立一個DirectX7對象,然后使用該對象的DirectDrawCreate方法來建立DirectDraw7對象。例如:
DimDXAsNewDirectX7
DimDDrawAsDirectDraw7
SetDDraw=DX.DirectDrawCreate(“”)
2.2建立協作層
當建立了一個DirectDraw對象之后,首先要設定DirectDraw的協作層。實現的方法是調用DirectDraw對象的SetCoOperativeLevel函數。該函數的定義是:
object.SetCooperativeLevel(hdlAsLong,flagsAsCONST_DDSCLFLAGS)
其中參數hdl指定程序的窗口句柄,參數flag決定程序運行的方式,函數調用
DDraw.SetCooperativeLevelMe.hWnd,DDSCL_NORMAL
將使程序運行于普通的協作層即窗口模式之下。在這種協作層你無法改變主平面調色板或進行頁交換,因為程序可以使用多窗口。而函數調用
DDraw.SetCooperativeLevelMainForm.hWnd,DDSCL_EXCLUSIVEOr_
DDSCL_FULLSCREEN
將使程序運行于全屏幕模式之下。在全屏幕協作模式之下你可以完全使用硬件的一切。在這個模式之下,你可以設置使用定義及動態調色板,改變顯示分辨率及進行頁交換。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
永久免费看mv网站入口亚洲| 日本国产一区二区三区| 欧美日韩亚洲视频一区| 亚洲国产精品女人久久久| 91午夜在线播放| 国产精品久久久久久久久久新婚| 国产综合久久久久久| 久久天天躁夜夜躁狠狠躁2022| 欧美性猛交xxx| 在线观看精品自拍私拍| 亚洲欧美综合v| 国产精品久久国产精品99gif| 91av视频在线| 精品国产精品自拍| 亚洲国产精品久久久久久| 成人激情春色网| 久久69精品久久久久久国产越南| 91在线中文字幕| 色婷婷**av毛片一区| 欧美精品手机在线| 高清在线视频日韩欧美| 欧美一级片免费在线| 国产精品久久久久aaaa九色| 亚洲伊人久久大香线蕉av| 欧美成人小视频| 久久99精品久久久久久噜噜| 日韩一区二区三区国产| 高清欧美电影在线| 亚洲最大av网| 国产视频在线观看一区二区| 国产精品老女人精品视频| 在线看片第一页欧美| 国产精品白嫩初高中害羞小美女| 国模私拍一区二区三区| 国产日韩换脸av一区在线观看| 亚洲欧美999| 国内揄拍国内精品少妇国语| 欧美国产日韩在线| 久久青草福利网站| 久久久久久国产精品三级玉女聊斋| 亚洲精品网址在线观看| 欧美性猛交xxxx富婆弯腰| 国产欧美日韩中文字幕| 亚洲裸体xxxx| 日韩av在线不卡| 欧美黑人国产人伦爽爽爽| 91夜夜未满十八勿入爽爽影院| 中文字幕日韩av| 国产午夜精品美女视频明星a级| 亚洲国产精品电影在线观看| 国产精品扒开腿爽爽爽视频| www.色综合| 国产成人高清激情视频在线观看| 国产精欧美一区二区三区| 久久久综合免费视频| 亚洲欧美激情一区| 国产成人中文字幕| 日韩av中文在线| 国产一区二区欧美日韩| 亚洲成人xxx| 欧美激情久久久久| www.日韩.com| 日韩精品免费看| 国产精品一区专区欧美日韩| 日韩电影中文字幕在线观看| 欧美成人精品在线播放| 欧美丝袜美女中出在线| 国产91精品黑色丝袜高跟鞋| 中文字幕亚洲综合| 国产精品白丝jk喷水视频一区| 69视频在线播放| 久久男人的天堂| 亚洲一区制服诱惑| 国产成人精品视频| 亚洲国产精品99| 法国裸体一区二区| 91久久嫩草影院一区二区| 久久久久久12| 久久久久久久亚洲精品| 国产精品国产三级国产专播精品人| 亚洲性猛交xxxxwww| 97久久精品人搡人人玩| 国产精品国产三级国产aⅴ浪潮| 欧美激情伊人电影| 国产精品极品尤物在线观看| 91精品视频免费看| 亚洲精品中文字| 日韩精品在线视频美女| 国产日韩欧美一二三区| 另类少妇人与禽zozz0性伦| 亚洲精品美女网站| 精品国产欧美一区二区五十路| 日本成人黄色片| 97超级碰碰碰久久久| 欧美日韩国产中文精品字幕自在自线| 精品女厕一区二区三区| 亚洲开心激情网| 国产欧美精品在线播放| 欧美精品在线网站| 欧美日韩美女视频| 91理论片午午论夜理片久久| 法国裸体一区二区| 中文字幕日韩欧美在线视频| 亚洲国产欧美一区二区三区同亚洲| 粉嫩av一区二区三区免费野| 欧美电影免费观看网站| 日韩欧美成人免费视频| 高清在线视频日韩欧美| 欧美国产乱视频| 国内免费久久久久久久久久久| 激情av一区二区| 国产精品福利网| 久久精品国产一区二区三区| 亚洲高清一区二| 日韩电影网在线| 国产男人精品视频| 日本久久中文字幕| 日本三级韩国三级久久| 国内免费精品永久在线视频| 亚洲精品成人免费| 欧美极品美女视频网站在线观看免费| 国产一区二区精品丝袜| 日韩一二三在线视频播| 亚洲中国色老太| 色综合久久精品亚洲国产| 欧美综合激情网| 8x拔播拔播x8国产精品| 欧美最猛性xxxx| 一区二区三区 在线观看视| 久久影视免费观看| 午夜精品久久久99热福利| 日韩中文字幕在线看| 日韩精品免费在线视频观看| 亚洲图片欧美午夜| 久久亚洲精品一区二区| 红桃视频成人在线观看| 这里只有精品在线观看| 久久夜色精品国产| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产日韩精品入口| 欧美黄色三级网站| 97久久久免费福利网址| 中文字幕亚洲欧美日韩高清| 日本韩国在线不卡| 欧美成人免费一级人片100| 日韩欧美精品网站| 国产欧美日韩精品丝袜高跟鞋| 国产香蕉精品视频一区二区三区| 国内外成人免费激情在线视频| 97碰在线观看| 欧美日本黄视频| 人九九综合九九宗合| 久久国产天堂福利天堂| 91tv亚洲精品香蕉国产一区7ujn| 91在线观看免费高清完整版在线观看| 中文精品99久久国产香蕉| 亚洲xxx自由成熟| 国产精品视频地址| 日韩精品视频免费专区在线播放| 色先锋资源久久综合5566| 欧美有码在线观看视频| 国产视频丨精品|在线观看| 91精品国产沙发| 亚洲片在线观看|