四隊和一隊基于Windows的游戲引擎設(shè)計與開發(fā)_第1頁
四隊和一隊基于Windows的游戲引擎設(shè)計與開發(fā)_第2頁
四隊和一隊基于Windows的游戲引擎設(shè)計與開發(fā)_第3頁
四隊和一隊基于Windows的游戲引擎設(shè)計與開發(fā)_第4頁
四隊和一隊基于Windows的游戲引擎設(shè)計與開發(fā)_第5頁
免費預(yù)覽已結(jié)束,剩余26頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

種重要的訓(xùn)練和方式目前訓(xùn)練中已經(jīng)使用了許多模擬仿真軟件從本質(zhì)究游戲引擎相關(guān)知識、碰撞檢測技術(shù)基礎(chǔ)理論,結(jié)合所學(xué)的C++程序設(shè)計、軟件工多技術(shù)等課程的知識設(shè)計開發(fā)了一個小型的游戲引擎為自己今后結(jié)合:游戲引擎,Windows編程,碰撞檢測Thegameengine,asitsnamesuggests,itsprimaryrolewasreflectedinthe"engine"ofthetwowordsabove.Asweallknow,withoutengines,suchasautomobiles,aircraft,andthattheyseemtobejustanemptys,unabletodriveorfly.Gameenginescancontrolallelementsofthegame,allowingthemtosync,orderedtowork.Inotherwords,thegameengineisthemainprogramcontrolgamefunctions,suchas:gamingsystemenvironments,physicalcollisions,thegameobject'srelativeposition,controlthegamevolumeandeffect,acceptingtheplayer'sinput,andsoon.Therefore,gameengine,asthe”Engine”ofthegame,itisthefocusofanygamedesignanddevelopment.Withthedevelopmentofinformatizationconstructioninarmedforces,simulationtrainingandnetworktrainingis inganimportanttrainingmeansandmethods,atpresentmanysimulationsoftwareisalreadyinuseinmilitarytraining.Inessence,simulationsystemandgamethereisnolocaldistinction,therefore,simulationsystem"engine"andgameenginetechnologies,implementedmethodsandbasicprinciplesthatthereisnofundamentaldifference.Studyonthissubjectknowledge,theoryofcollisiondetectionbasedongameengines,combinedwiththeC++programdesign,softwareengineering,andmultimediatechnicalknowledgeoftheseprogrammes,designedanddevelopedasmallgameengines,practicaldesignanddevelopmentforthecombinationoftheirfutureforcessimulationtrainingsoftwareandlayagood:Gameengine,Windowsprogramming,Collision目摘 第一章緒 本課題研究的目的及意 游戲引擎發(fā)展歷 游戲引擎在軍事領(lǐng)域的應(yīng) 本文主要研究內(nèi)容與結(jié)構(gòu)安 第二章Windows游戲編程入 事件驅(qū)動編 使用消息通 理解設(shè)備獨立 將程序信息為資 處理陌生的數(shù)據(jù)類 非傳統(tǒng)的編碼約 深入了解Windows程 入 窗口 創(chuàng)建窗 處理消 使用資 本章小 第三章VS2008開發(fā)工具介 VisualStudio概 VS2008開發(fā)環(huán) VS開發(fā)環(huán)境簡 VS2008關(guān)鍵改 新功 本章小 第四章碰撞檢 碰撞檢測簡 碰撞檢測的算 碰撞檢測的方 邊界框碰撞檢 邊界球碰撞檢 圖像數(shù)據(jù)碰撞檢 一些簡單的代 本章小 第五章游戲引擎設(shè) 詳細(xì)了解游戲引 與游戲玩家交 管理子畫 使用聲音和音 高級動 本章小 第六章總結(jié)與展 完成的工 存在的問 展 致 參考文 第一章緒論本課題研究的目的及,就游戲而言游戲運(yùn)行的程序便是游戲引擎游戲和游戲引擎實現(xiàn)很多功能比如說接受玩家輸入的控制信息選擇合適和音量等,,通過一個游戲引擎的設(shè)計與開發(fā),將使自己進(jìn)一步學(xué)習(xí)C++程序設(shè)計、軟件工多技術(shù)等課程所學(xué)到的理論知識,提高從事Windows程序設(shè)計與種重要的訓(xùn)練和方式目前訓(xùn)練中已經(jīng)使用了許多模擬仿真軟件從本質(zhì)游戲引擎發(fā)展1995QBASICDOS游戲,總共耗時2比較成功,后來被移植到一些平臺和Windows平臺。2000年時,國內(nèi)很多游戲都相繼有了突破,仙劍2也在這種情況下醞釀著《仙劍奇?zhèn)b傳2》采取了DOMO自行研發(fā)的游戲引擎,別看它是一個2D游戲,它的制作水平當(dāng)時在國內(nèi)也是數(shù)一數(shù)二的。該游戲引擎也利用到很多游3之類的國產(chǎn)游戲。2003誕生的《仙劍奇?zhèn)b傳三2004年后誕生的《仙劍3:問情篇2款RPG游戲在國產(chǎn)游戲中非常受歡迎。原因是大宇開發(fā)出了一個新的游戲引擎受。不幸的是在2005年之后,由于Gamebox引擎不再和更新,最后退出了歷史舞臺。到了2004年,國內(nèi)許多游戲都還是基于DX7.0、DX08.1渲染模式,畫面國外游戲市場的一大亮點就是以和PC為主追求給人帶來完美的視覺享游戲引擎在軍事領(lǐng)域的應(yīng),是一個信息化的時代,科學(xué)技術(shù)在不斷的發(fā)展教育、訓(xùn)練的方式和也日益向多樣化信息化方向發(fā)展隨著計算機(jī)技術(shù)的迅猛發(fā)展和,,目前在教育、訓(xùn)練中已經(jīng)使用了大量的模擬仿真系統(tǒng),這些系統(tǒng)在提高,本文主要研究內(nèi)容與結(jié)構(gòu)安VS2008過游戲引擎這個概念的人進(jìn)行一下介紹,以及教大家學(xué)會如何設(shè)計和開發(fā)一個簡第一章論述本研究的目的及意義,及游戲引擎的發(fā)展歷史第二章主要講述Windows游戲編程入門的一些知識,了解Windows程序。VS2008的開發(fā)環(huán)境。第七章為致謝,感謝妙老師的指導(dǎo),隊的嚴(yán)格要求和的幫助。第二章Windows事件驅(qū)動編對于大多數(shù)剛從事WindowsWindows程序是事件驅(qū)動[1]的。這實際上是說Windows程序響應(yīng)它們的環(huán)境,而不是由環(huán)境從程使用消息通在傳統(tǒng)的非圖形程序中,程序調(diào)用一個系統(tǒng)函數(shù)來完成指定的任務(wù)。圖形Windows程序改變了這種方案,允許Windows調(diào)用一個程序函數(shù)。當(dāng)我說“Windows調(diào)用一個程序函數(shù)”時,指的是Windows向這個程序發(fā)送一個“消事情(例如用戶拖動鼠標(biāo)或者調(diào)整主程序窗口的大?。r,Windows就會發(fā)送消理解設(shè)備獨立速度非??祀m然這種方法很適合DOS游戲但是并不適合Windows一般來說,Windows是特別設(shè)計為防止直接與硬件(例如顯卡)交互的。這種設(shè)計稱為“設(shè)備獨立性”,它意味著Windows程序在特定硬件設(shè)備上繪制圖形的方式是獨立于這種Windows程序進(jìn)行任何修改就可以在許多DOS領(lǐng)域里是不可能實現(xiàn)的。將程序信息為資Windows程序都在某種程度上依賴于資源,資源是與程序相關(guān)但是殊的資源(也稱為RC文件)中指定Windows程序的所有資源。資源是處理陌生的數(shù)據(jù)類?;蛟SWindows編程中最的部分就是熟悉每一個Windows程序中都具有的陌生數(shù)據(jù)類型會看到的最常見的一種數(shù)據(jù)類型是句柄(handle),它與現(xiàn)實它了一個圖形Windows對象,例如窗口或者圖標(biāo)。因為Windows經(jīng)常在內(nèi)存了對一個對象的固定,它獨立于對象在內(nèi)存中的物理位置。除了句柄之外,Win32API還引入了許多新的不同數(shù)據(jù)類型,乍看起來可能會覺得很陌生。所有常用的Win32數(shù)據(jù)類型是RECT,它表示矩形結(jié)構(gòu)(包含4個成員,用于左、上、型,地介紹所有這些數(shù)據(jù)類型是不可能的。。非傳統(tǒng)的編碼約indows引入了許多不同的數(shù)據(jù)類型,使得難以了解哪些變量屬于哪一種類型。的一位式的程序員hrlesSimonyi提出了一種很巧妙的方法來“Simonyi先生是一位匈牙利人在匈牙利表示法中,變量名稱是以一個或者多個表示變量數(shù)據(jù)類型的小寫字母開iindows編程中常用的一些匈牙利表示法前綴2:ib——數(shù)ph深入了解Windows程入C/C++main(函數(shù)。操作系統(tǒng)在第一次運(yùn)行一個程序時調(diào)用main(main(Windows程序中沒有main(函數(shù)不過,Windows提供了一個相似的函數(shù)它名為WinMain(),充當(dāng)了Windows程序的開始點。與main()不同,WinMain()只是創(chuàng)建和初始化一些對象,然后便退到在WinMain()為程序創(chuàng)建一個主窗口之后將響應(yīng)主窗口過程中的事件而執(zhí)行程序的其余部分。窗口過程是Windows程序中最有趣的部分。窗口Windows程序中的所有窗口都是基于窗口類創(chuàng)建的,窗口類是一個定義了窗Win32窗口類,Windows中的所有按鈕都是基于這個類創(chuàng)建的。如果希望創(chuàng)建一個自己的新窗口那么必須一個窗口類然后基于它創(chuàng)建一個窗口。為了從窗口類創(chuàng)建新窗口,必須使用RegisterClassExoWin32API函數(shù)在Windows中這個窗口類。在了一個窗口類之后,就可以使用它來創(chuàng)建typedefstruct{ // hIconSm;//窗口類的一個可選小圖標(biāo) hCursor;//窗口類的鼠標(biāo)指針 }創(chuàng)建窗Windows程序(包括游戲)的關(guān)鍵部分都是主程序窗口的創(chuàng)建。創(chuàng)建窗創(chuàng)建窗口時,還必須定義窗口的其他屬性。這些屬性都作為參數(shù)提供給CreateWindow()Win32API函數(shù)。下面是通過CreateWindow()函數(shù)創(chuàng)建窗口的一個例子。hwnd=Createindow(zAppName"y1個參數(shù)szAppName2個參數(shù)是窗口標(biāo)題MyGame”,當(dāng)程序運(yùn)行時,它顯示在窗口的標(biāo)題欄中。WS_OVERLAPPEDWINDOWWin32樣式,它標(biāo)識了一個能夠調(diào)整大小的傳統(tǒng)窗口。4CWJJSEDEFAULT樣式指定xy;位置以及窗口的寬度和高度,可以對這些設(shè)置使用特定的數(shù)值,但是CWJJSEDEFAULT告訴Windows使用一個合理的默認(rèn)值。處理消一個消息主要由3部分組成:一個窗口;一個消息標(biāo)識符;消息參數(shù)。與消息WM_CRETEWM_MOUSEMOVEWin32API中定義的數(shù)字變量,它們分別標(biāo)識了與32位的值稱為ramlParam,它們的含義完全由所處理的消息決定。例如,WM_SIZE消息的ram參數(shù)包含關(guān)于在窗口lParam參數(shù)包含窗口內(nèi)部區(qū)域(也稱為窗口的位字中,這是Win32用來在一個單獨的位置兩部分信息的常用方法。使用資在Windows中,一個非常重要的部分就是——資源。資源是與Windows程序資源是在程序中使用資源定義的這種是一個擴(kuò)展名為.RC的文本文件。使用資源編譯器將資源編譯為擴(kuò)展名為.RES的二進(jìn)制資源文件。然后,將這個二進(jìn)制資源文件與應(yīng)用程序的對象代碼,從而創(chuàng)建一個完整的可執(zhí)行應(yīng)用程序編譯資源并將其到應(yīng)用程序的.EXE文件的過程通常是Windows編本章小Windows程序所需的知識,為之后的開發(fā)游戲引第三章VS2008VisualStudio概:開發(fā)Windows游戲的C++編譯器為了支持Windows必須包括WindowsAPI。從開發(fā)工具的角度來看,WindowsAPIWindows程序所必需的一組頭文件和庫文件。可以開發(fā)Windows游戲的C++開發(fā)工具有很多,比如VisualC++、BorlandCBulider、BloodshedDev-C++、DJGPP。這些工具都有自己的優(yōu)點,但是根據(jù)本人對知識的掌握和熟練程度,本次游戲引擎的開發(fā)選用VisualStudio工具。:VisualStudioVisualStudio可以創(chuàng)建Windows平臺下的WindowsOffice插件和網(wǎng)絡(luò)服務(wù)。VisualStudio2008250多種新特性,同時整合了關(guān)系型數(shù)據(jù)、對象和XML的方式,使它的語言變的更加簡潔易懂。使用VisualStudio2008使開發(fā)Windows應(yīng)用程序的效率大大提高。VisualStudio2008也能夠VisualS是一款能夠基于.NET框架來創(chuàng)建應(yīng)用程序的集成開發(fā)環(huán)境,不僅堅持一般性的桌面應(yīng)用程序開發(fā)、XMLWebServices程序、ASP.NETWeb程WindowsCE操作系統(tǒng)的開發(fā)、PocketPC應(yīng)用程序開發(fā)、SmartPhone應(yīng)用程序開發(fā)等。VS2008開發(fā)環(huán)VS開發(fā)環(huán)境簡首先,功能上的增強(qiáng)。VisualStudio2008[4]3點:提高開發(fā)技術(shù)開發(fā)新應(yīng)用。VisualStudio2008支持.NETframework3.5,并且對以前.NETframeworkVB3.5C#3.5LINQ的支持。LINQ允許用戶利用VB和C#編寫類似于SQL語句的指令,最大的好處是使開發(fā)SQL雖然語言檢索的能力很強(qiáng),但它的VisualStudio2008LINQ技其次,語言上的增強(qiáng)。在VisualStudio2008C++語言當(dāng)中,MFC可以支持Vista的通用控件。VisualStudio2008AJAX引入擴(kuò)展控件,使ASP.NETAJAX應(yīng)用的開發(fā)變的迅速。為防止對系統(tǒng)的破壞,Vista使用UAC控制機(jī)制。此外,對XML的處理也更加方便。同時,VB集成開發(fā)環(huán)境變得更加智能,大大提高了開發(fā)效率。VisualStudio2008整合了關(guān)系型數(shù)據(jù)、對象、XML的方式,語言更加簡潔。最后,高效開發(fā)。使用VisualStudio2008可以高效開發(fā)Windows應(yīng)用。設(shè)計器可以實時反映變更,XAML中智能感知功能又能提高開發(fā)效率。此外,VisualStudio2008可以支持調(diào)試器、項目模板和部署程序。VisualStudio2008可以高效WebASP.NETAJAX1.0ASP.NETAJAX項目模板。此OfficeMobile應(yīng)用。VS2008關(guān)鍵改VisualStudio20083點為開發(fā)人員提供了關(guān)鍵技術(shù)改進(jìn):快速的應(yīng)用戶能在各種平臺上快速創(chuàng)建當(dāng)前最先進(jìn)的應(yīng)用程序。VisualStudio2008包括多處理所有類型數(shù)據(jù)的語言增強(qiáng)功能。VisualStudio2008為開發(fā)人員提供了所有相AJAXWeb應(yīng)用程序。(LINQ),所VisualStudio2008的另一大功能是使開發(fā)人員能夠在同樣的一個開發(fā)環(huán)境內(nèi)創(chuàng)建面向多個.NETFramework版本的應(yīng)用程序。開發(fā)人員能夠構(gòu)建面向.NETFramework2.0、3.0或3.5的應(yīng)用程序,這意味他們可以在同一環(huán)境中支持各種VisualStudio2008為開發(fā)人員提供了在平臺上加速創(chuàng)建緊密聯(lián)系的應(yīng)用和WindowsServer2008Web,ASPNETAJAX以及其它的新技術(shù),使開發(fā)人員能夠迅速創(chuàng)建更高效、交互式更強(qiáng)和更個性化的新一代Web體驗。VisualStudio2008提供了很多的服務(wù)項目,這些項目幫助開發(fā)團(tuán)隊改進(jìn)協(xié)作新功VS2008——VisualStudio2008很好用,特別是它VisualStudio2008中WCF的新增功能。VisualStudio2008對WCF的擴(kuò)展,VisualStudio2008中的多定向支持。VisualStudio2008給應(yīng)用程序的開發(fā)提供了新思路和。VS2008支持Subversion。雖然VisualStudio2008Ankhsvn,WindowsLiveVisualStudioVisualStudio2008的程序員能夠更加有效的開發(fā)Live網(wǎng)絡(luò)。VisualStudio2008SQL數(shù)據(jù)庫的發(fā)布。VisualStudio2008為數(shù)據(jù)庫的發(fā)VisualStudio2008本章小第四章碰撞檢測簡最早期的游戲可能只是在上進(jìn)行的簡單相關(guān)操作,像鼠標(biāo)點擊等等都是通過直接點擊觸發(fā)事件或者是由劇本的需要在特定的時間地點觸發(fā)某個事件時,你肯定是希望可以穿過去而不是全部“粘”到物體上。游戲中所有類似碰撞檢測的算4-1為碰撞檢測算法的分類圖。4.1BSP樹、均勻剖分、八叉樹等;層次包圍盒法可分為包圍球、軸向包圍盒(AABB)、方向包圍盒(OBB)、K-Dop樹等等。碰撞檢測的方邊界框碰撞檢邊界框顧名思義是指圍繞在物體的方框它的結(jié)構(gòu)較簡單由xyz題的方法是先創(chuàng)建一個比較大的圍繞物體的邊界框,然后采用一些較小的邊界框圍繞在重點部分的周圍在進(jìn)試的時候首先對大邊界框進(jìn)試如果通過的話之后對小的邊界框進(jìn)試測試之后如果大邊界框為真就可認(rèn)為小邊界框同樣可能為真相反若是大邊界框測試沒能通過就完全沒必要對之前的小邊界框進(jìn)試了雖說這種方法對于提高精確度有一定幫助,但它最大的弊端是在使用邊界框時有浪費空間的現(xiàn)象。下面介紹測試碰撞是否發(fā)生的方法可認(rèn)為存在碰撞的一種情況是點的xy、框測試若是其中任意一個角的為真就說明兩個盒子之間確實發(fā)生了就會發(fā)生了碰撞,然而實際上只是透明的區(qū)域。邊界球碰撞檢3個浮點值代表了邊界球的中心位置,第四個結(jié)果值的平方根來得到球的半徑。邊界球的中心坐標(biāo)就是差值除以2的結(jié)果。在在計算的過程中肯定會出現(xiàn)利用近似值的時候,采用近似值方法的最大缺點就是會因為降低了準(zhǔn)確率而造成空間的浪費。當(dāng)碰撞發(fā)生在框體內(nèi)但不是對象體就是因為準(zhǔn)確率不高導(dǎo)致無法準(zhǔn)確判定框體內(nèi)不含物體的那部分,從而造成了空間浪費。圖像數(shù)據(jù)碰撞檢面的透明部分還是子畫面圖像本身發(fā)生了在這種情況下只有實際的子畫面圖像發(fā)生時才獲得一次碰撞因為這種技術(shù)非常準(zhǔn)確允許任何形狀的對象毫一些簡單的代Sprite類在其CalcCollisionRec()的方法來根據(jù)位置矩形計算碰撞矩形,CalcCollisionRec()方法被定義為Sprite類中的一個虛擬函數(shù),因此派生類可InlinevoidSprite::CalcCollisionRec({ iXShrink=(m_rcPosition.left–m_rcPosition.right)/12; iYShrink=(m_rcPosition.top–m_rcPosition.bottom)/12;CopyRect(&m_rcCollision,&m_rcPosition);InflateRect(&m_rcCollision,iXShrink,}對于碰撞,Sprite類提供了一個名為TestCollision()的方法,用來檢測子畫面InlineBOOLSprite::TestCollision(Sprite*{RECT&rcTest=pTestSprite->GetCollision();returnm_rcCollision.left<=rcTest.right&&}TestCollision()方法將返回TRUE,否則返回FALSE。本章小第五章詳細(xì)了解游戲NeoEngineC++3D三維游戲引擎;IrrlichtEngine,是一個開放源碼的高性能的實時3D引擎既可以用C++編寫也可用.Net語言;OGRE(面向?qū)ο蟮膱D像渲染引擎C++編寫的,以現(xiàn)場為導(dǎo)向,靈活的三維3D圖形應(yīng)用程序;Bullet,三維游戲多重物理庫,提供最先進(jìn)的碰撞檢測和剛體動力學(xué);PowerRender3D圖形準(zhǔn)備的軟件開發(fā)工具包;CrystalSpace,是一個在UNIX,Windows和MacOSX3DSDKOpenGL或軟件來渲染。SDK[11]MFC[12]做以簡介。SDK是軟件工具開API的一些文件,或者是能與某種嵌入式系統(tǒng)通訊的復(fù)雜的硬件。SDK雖然上手比較容易,但它的使用功能不是很強(qiáng)。MFCC++類庫,其內(nèi)部封裝了大部分的WindowsAPI函數(shù)。MFC能將API函數(shù)封裝起來,通過類來管理資問題上,簡化了編程過程。同時,這也是MFC的一個不足,對于不是十分熟悉它了它的內(nèi)部原理,便會發(fā)現(xiàn)MFC的功能特別強(qiáng)大而且使用性很強(qiáng)。游戲引擎為Windows游戲提供的一個最大的方便是,它可以把針對Windows而與游戲無關(guān)的代碼隱。相對于通過剪切和粘貼這些常規(guī)代碼來創(chuàng)建新游游戲引擎的基本工作流程[13]如圖5.1游戲引擎工作Windows程序分解成事件,就是指在程序運(yùn)行時發(fā)生的事情。游 GameEnd( GameCycle(,hInstance參數(shù),是一種WIN32數(shù)據(jù)類型了一個應(yīng)用程序?qū)嵗INSTANCE數(shù)據(jù)類型是應(yīng)用程序?qū)嵗木浔?,它允許程序其資源。,GameEngineclass{//MemberstaticGameEngine* m_iWidth, //構(gòu)造函數(shù)/ szTitle,WORDwIcon,WORDwSmallIcon,intiWidth=640,intiHeight=480);virtual~GameEngine(staticGameEngine* GetEngine(){returnm_pGameEngine;}; Initialize(intiCmdShow); HandleEvent(HWNDhWindow,UINTmsg, ram,LPARAMlParam); GetInstance(){returnm_hInstance;}; GetWindow(){returnm_hWindow;}; SetWindow(HWNDhWindow){m_hWindow=hWindow;}; GetTitle(){returnm_szTitle;}; GetIcon(){returnm_wIcon; GetSmallIcon(){returnm_wSmallIcon;}; GetWidth(){returnm_iWidth;}; GetHeight(){returnm_iHeight; GetFrameDelay(){returnm_iFrameDelay; SetFrameRate(intiFrameRate){m_iFrameDelay=1000/ GetSleep(){returnm_bSleep; SetSleep(BOOLbSleep){m_bSleep=bSleep;與游戲玩家交輸入設(shè)備鍵盤對于玩家最大的無非就是鍵的數(shù)量游戲中添加鍵盤支持的方法是調(diào)用一個鍵盤處理函數(shù)voidHandleKeys(),3voidMouseButtonDown(intx,inty,BOOLbLeft);voidMouseButtonUp(intx,inty,BOOLbLeft);voidMouseMove(intx,inty);caseMouseButtonDown(LOWORD(lParam),HIWORD(lParam),returncaseMouseButtonUp(LOWORD(lParamHIWORD(lParamTRUE);return0;caseMouseButtonDown(LOWORD(lParamHIWORD(lParamFALSE);return0;caseMouseButtonUp(LOWORD(lParamHIWORD(lParamFALSE);return0;caseMouseMove(LOWORD(lParamHIWORD(lParam));return0;管理子方法以便子畫面管理器在檢測碰撞時這個矩形這個方法名為GetCollision(RECT&GetCollisionreturnm_rcCollision;};對于碰撞,可以使用TestCollision()的方法BOOLTestCollision(Sprite*pTestSprite);estolliion方法將返回TE,否則返回LSE。時操作子畫面,可以使用一個自定義的數(shù)據(jù)類型來表示子畫面動作,比如說typedef const SA_NONE子畫面動作對任何子畫面都不做任何事,SA_KILL子畫面動作使用聲音和音MIDI音樂[14]MIDIMIDI編曲設(shè)備ID,可以使用一個新的成員變量:UNITm_uiMIDIPlayerID;UNITm_uiMIDIPlayerIDMIDiIDID0,就意味著打開了設(shè)備,準(zhǔn)備好音樂。如果這個成員變量設(shè)置為0,則關(guān)閉了設(shè)備。GameEnginem_uiMIDIPlayerID中需要初始化它游戲引擎中完成MIDI音樂任務(wù)的3個方法voidPlayMIDISong(LPTSTRszMIDIFileName=TEXT(“ voidPauseMIDISong();voidCloseMIDIPlayer(PlayMIDISong()方法中有一個字符串參數(shù)它表示要的MIDI文件的文件名。MIDI器還沒有打開時,PlayMIDISong()負(fù)責(zé)打開它。PauseMIDISong()方法可以暫停正在的MIDI音樂,CloseMIDIPlayer()方法用來關(guān)閉MIDI設(shè)備并清空設(shè)備ID。高級動voidBitmap::Dra rt(HDChDC,intx,inty,i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論