麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

用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
將使程序運行于全屏幕模式之下。在全屏幕協作模式之下你可以完全使用硬件的一切。在這個模式之下,你可以設置使用定義及動態調色板,改變顯示分辨率及進行頁交換。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99re热精品视频 | 92看片淫黄大片一级 | 日本黄色一级视频 | 黄色作爱视频 | 视频一区二区三区在线播放 | 国产在线1区 | 永久免费黄色片 | 美女在线视频一区二区 | 国产小视频一区 | 国产二区三区视频 | 一级网站 | 全黄裸片武则天艳史 | 欧美黄色性生活视频 | 国产91一区二区三区 | 久久免费观看一级毛片 | 蜜桃传媒视频麻豆第一区免费观看 | 国产免费激情视频 | 色女生影院| 久久久久久三区 | 久久午夜神器 | 中文字幕一区二区三区四区 | 久综合色 | 久久久日韩精品一区二区 | 成人区一区二区三区 | 欧美成人se01短视频在线看 | 精品成人在线 | 国产精品久久久久久久久久三级 | 免费的性爱视频 | hdhdhd79xxxxх | 91九色蝌蚪在线 | 色淫网站免费视频 | 精品国产一级毛片 | 一级在线视频 | 91 在线 | 91成人在线免费 | 久久亚洲国产午夜精品理论片 | 国产精品免费观看视频 | 在线成人www免费观看视频 | 久久久久久久久久久影视 | 全网免费毛片 | 视频一区二区三区中文字幕 |