freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計基于directx(sdk)的visualc游戲設計-資料下載頁

2024-12-01 16:51本頁面

【導讀】過去,人們主要是借助電影、電視、音樂等方式來娛樂。而今天,以游戲為代。表的電子娛樂正在成為主流娛樂方式。游戲也正在迅速成長為一個龐大的產業(yè)。本文詳細介紹了游戲設計基本概念和DirectX. 的構架,包括DirectDraw、Direct3D、DirectSound,并在VisualC++環(huán)境下使用。DirectX開發(fā)多媒體游戲作為本論文的實例。隨著個人電腦以及Inter的普及,游戲業(yè)迎來了蓬勃發(fā)展的時代。機器上運行的DOS游戲已經讓人玩的如癡如醉、興奮不已。等設備的飛速發(fā)展,為人們開發(fā)更加炫目多彩的游戲提供了可能。成一個200億美元的巨大市場。而中國的電腦游戲產業(yè)才剛剛處于起步階。人和愛好者,大家共同努力開創(chuàng)中國游戲業(yè)的明天。第一臺16位計算機問世,如IBMPC及其兼容機、戲如《WingCommander》、《FlightSimulator》等。在90年代初期,IBMPC及其兼容機漸漸成為主流,伴隨著Windows的發(fā)布,的發(fā)現(xiàn)了這一點,并開始制定巨大的計劃涉足游戲,由此,DirectX為游戲而生。仍然采用DOS32平臺進行游戲編程。此間,也誕生了如《紅色警戒》、《暗黑破壞神》、

  

【正文】 游戲的制作工具與運行環(huán)境 制作工具 在本次畢業(yè)設計中,預備在 Windows 2021 環(huán)境下使用 Visual C++ 來編制游戲。C 語言是擁有著優(yōu)良傳統(tǒng)的程序語言, Visual C++則是以 C 語言為基礎來開發(fā)程序的一套功能強大的工具,雖說 Visual C++也有缺點,但 Visual C++在程序開發(fā)上具有 “絕對 ”的優(yōu)勢,尤其對于講求速率與性能的游戲程序。 以目前商業(yè)游戲程序設計的領域來說,都是使用 Visual C++作為開發(fā)的環(huán)境,因為Visual C++在游戲程序開發(fā)上具備很多優(yōu)點: ① 優(yōu)越的速度表現(xiàn) Visual C++中現(xiàn)成的對象和函數(shù)與其它語言相比相對較少,因此使用時程序的負荷就較小,程序執(zhí)行時的性能較好。 ② 直接存取內存 在 C 語言中可以以 “指針 ”來直接存取系統(tǒng)上的內存, C 語言中也提供了不少有關內存處理的函數(shù),直接存取內存的最大好處就是 “快 ”。 ③ MFC 類函數(shù)庫 MFC(Microsoft Foundation Class)是整合在 Visual C++中的一套完整且龐大的類函數(shù)庫,使用 MFC 可以讓程序員很輕易地就建構出應用程序的主干,簡化了使用 Windows API 開發(fā)程序的難度,適合初學 Visual C++或者游戲設計的人員。 ④ 使用 DirectX SDK DirectX SDK 中包含了各種組件用來處理 2D 和 3D 圖像、聲音、網絡連接以及控制各類輸入裝置,是游戲開發(fā)中不可缺少的主角,并為廣大的程序員提供了一整套的應用程序接口,使程序員能夠設計高性能實時的應用程序。 運行環(huán)境 Windows 98/2021/XP 系統(tǒng)裝有 DirectX 或以上版本 本游戲是用 Visual C++ 在 Windows 2021 環(huán)境中制作編譯。因為使用的工具都 是微軟的產品,可移植比較好,所以本游戲能在 Windows 98/2021/XP 上運行,不需要重新編譯和連接。 基于 DirectX( SDK) 的 Visual C++游戲設計 4. 游戲的實現(xiàn) 總體設計方案 游戲側重點 一個游戲是否好玩,無非取決于以下幾點:內容,操控,畫面和聲音。 射擊類游戲是一種比較常見的游戲。為了使游戲的可玩性達到理想的程度,同時又考慮到個人的能力 ,我將重點放在:挑戰(zhàn)性,操控 和 游戲的結構。 游戲 的 畫面 游戲中各個對象的實現(xiàn)都是通過貼圖來實現(xiàn)的,它們的實現(xiàn)主要通過 DirectDraw對象中 CreateSurface 函數(shù)來實現(xiàn)的。 在 游戲中 使用了離屏技術進行貼圖 , 如果直接使用普通的手段進行貼圖的話,由于過于頻繁地對的 DirectDraw Surface 對象直接進行貼圖會造成屏幕的閃爍,這對游戲的來說是致命的打擊。 圖 4- 1 顯示的是本游戲的畫面截圖 圖 4- 1 游戲的畫面截圖 基于 DirectX( SDK) 的 Visual C++游戲設計 下面是游戲中的主要的元素的一些實現(xiàn)的方式: ① 飛機。事先找一些精美的飛機圖片,然后通過各種手段處理后,直接在存放到 Surface對象中。 ② 背景。背景在游戲中占有重要的地位,為了讓游戲看起來更加具有動感,在游戲的過程,背景必須能夠不斷地滾動。這樣,在玩家看來就像飛機在不停地前進,背景在不停地變換,增強了游戲情節(jié)進行時的動感。 ③ 在某些地方是需要用文字進行描繪的,如幀數(shù)率,得分等。就直接在游戲的屏幕上進行輸出。使用 的是 HDC 類中的 TextOut 方法。 游戲 的 模塊 根據(jù)游戲的運行機制和實現(xiàn)的手段。游戲主要分成三大塊:游戲的初始化(玩家飛機的初始化,敵機和道具的生成線程的初始化)、戰(zhàn)斗狀態(tài)(包括各種對象的行為)和游戲的狀態(tài)(是否結束、加速、減速)。這是本 游戲 程序的重頭戲,游戲模塊實現(xiàn)的好壞直接決定了游戲的質量。游戲模塊中的游戲畫面,也是通過貼圖的形式來實現(xiàn)。 1. 初始化 游戲的初始化其實包括兩部分,一部分是:玩家的飛機的初始化,另一部分是:敵機和道具生成線程的初始化。 ① 玩家飛機 的初始化 在游戲的開始,玩家操控一架飛機,當然這架飛機是需要程序為他做一些初始化的工作的。在初始化的時候,游戲將玩家的子彈威力,可使用的炸彈的數(shù)量設置好,同時設置好 玩家 飛機出來時的初始位置的坐標。 ② 敵機和道具生成線程的初始化 在游戲的過程中,敵機的是會源源不斷地動態(tài)地生成的。所以一開始就要把這個線基于 DirectX( SDK) 的 Visual C++游戲設計 程初始化好,只有這個線程在工作的時候,才會有敵機來出現(xiàn),游戲才能進行下去。當然在這個階段該線程還僅僅是被創(chuàng)建了而已,并沒有立即運行,而是處于被掛起的狀態(tài)。當然,這一段時 間極短。 2. 戰(zhàn)斗狀態(tài) 戰(zhàn)斗狀態(tài)包括了各個游戲中的各種元素的動作,以及各元素的狀態(tài)的變換。在這里的元素是指游戲中所有的狀態(tài)在不斷改變的對象等等。 ① 敵機的動作 敵機的動作是根據(jù)玩家所操控的飛機的位置,和游戲的難度來確定的。敵機的動作是包括兩個: 移動:移動的時候,就是在某種概率的情況下,向前飛,同時可以左右移動向玩家操控的飛機靠近,或者對玩家的飛機進行撞擊。 射擊:在敵機產生后,敵機能夠自動確定玩家操控的飛機的當前的位置。然后向這個位置射擊,當然射擊的頻率是根據(jù)游戲設定的難 度和玩家已經獲得的分數(shù)來確定的。 ② 玩家飛機的動作 玩家是通過 的特定的鍵盤輸入來控制玩家飛機的動作。也就是前面已經提到的移動和 射擊。 中 的狀態(tài) ① 游戲的結束 玩家操控的飛機被敵機擊毀后游戲就結束了。當然,當玩家擊退了所有的敵機后游戲也會結束。 ② 游戲的加速 /減速 加速將使游戲變得困難,它會使游戲中子彈和飛機速度變快。而減速將使游戲變得簡單,使游戲中子彈和飛機速度變慢。 基于 DirectX( SDK) 的 Visual C++游戲設計 游戲模塊的流程圖 圖 4- 2 所示的是游戲模塊的流程圖,它分為六個模塊: 1. 游戲開始 2. 啟動敵機的生成線程 3. 初始化玩家的飛機 4. 玩家操控飛機進行游戲 5. 游戲是否結束? 是:轉 5 否:轉 3 6. 結束,終止敵機的生成線 程 基于 DirectX( SDK) 的 Visual C++游戲設計 圖 4- 2游戲模塊的流程圖 游戲具體實現(xiàn) 1. DirectDraw 環(huán)境的初始化 BOOL InitDDraw(void) { DWORD dwFlags。 DDSURFACEDESC ddsd。 //創(chuàng)建 DirectDraw 對象 DirectDrawCreate(NULL, amp。lpDD, NULL)。 //設置協(xié)作級別為窗口模式 dwFlags = DDSCL_NORMAL。 lpDDSetCooperativeLevel(hWnd, dwFlags)。 基于 DirectX( SDK) 的 Visual C++游戲設計 //創(chuàng)建主頁面 ZeroMemory(amp。ddsd, sizeof(ddsd))。 = sizeof(ddsd)。 = DDSD_CAPS。 = DDSCAPS_PRIMARYSURFACE。 lpDDCreateSurface(amp。ddsd, amp。lpDDSFront, NULL)。 //創(chuàng)建離屏頁面 = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT。 = DDSCAPS_OFFSCREENPLAIN。 RECT rect。 GetClientRect(hWnd, amp。rect)。 forewidth=。 foreheight=。 GetRect(amp。backrect, 65, 65, forewidth, foreheight)。 = backwidth=forewidth+130。 = backheight=foreheight+130。 lpDDCreateSurface( amp。ddsd, amp。lpDDSBack, NULL )。 //創(chuàng)建地圖頁面 = 64。 = 64。 lpDDCreateSurface( amp。ddsd, amp。lpDDSMap, NULL )。 DDReLoadBitmap(lpDDSMap, )。 //創(chuàng)建飛機頁面 = 50。 = 60。 lpDDCreateSurface( amp。ddsd, amp。lpDDSPlane[0], NULL )。 lpDDCreateSurface( amp。ddsd, amp。lpDDSPlane[1], NULL )。 lpDDCreateSurface( amp。ddsd, amp。lpDDSPlane[2], NULL )。 DDReLoadBitmap(lpDDSPlane[0], )。 DDReLoadBitmap(lpDDSPlane[1], )。 DDReLoadBitmap(lpDDSPlane[2], )。 DDSetColorKey(lpDDSPlane[0],RGB(0,0,0))。 DDSetColorKey(lpDDSPlane[1],RGB(0,0,0))。 DDSetColorKey(lpDDSPlane[2],RGB(0,0,0))。 //創(chuàng)建炸彈頁面 = 14。 = 36。 基于 DirectX( SDK) 的 Visual C++游戲設計 lpDDCreateSurface( amp。ddsd
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1