大香蕉综合在线观看视频-日本在线观看免费福利-欧美激情一级欧美精品性-综合激情丁香久久狠狠

好房網(wǎng)

網(wǎng)站首頁(yè) 教育 > 正文

什么是XNA(Framework 詳細(xì))

2022-07-05 20:14:25 教育 來(lái)源:
導(dǎo)讀 想必現(xiàn)在有很多小伙伴對(duì)于什么是XNA Framework 詳細(xì)方面的知識(shí)都比較想要了解,那么今天小好小編就為大家收集了一些關(guān)于什么是XNA Fr

想必現(xiàn)在有很多小伙伴對(duì)于什么是XNA Framework 詳細(xì)方面的知識(shí)都比較想要了解,那么今天小好小編就為大家收集了一些關(guān)于什么是XNA Framework 詳細(xì)方面的知識(shí)分享給大家,希望大家會(huì)喜歡哦。

1、XNA Framework 是一系列幫助開(kāi)發(fā)人員編寫游戲的類庫(kù)。

2、在beta 版即將到來(lái)之際我想來(lái)花點(diǎn)時(shí)間通過(guò)對(duì)XNA 的三個(gè)關(guān)鍵點(diǎn)的解釋來(lái)說(shuō)明一下XNA Framework,也就是:XNA Framework 的目標(biāo)是什么,XNA Framework 是什么,還有它可以做什么 在開(kāi)發(fā)的時(shí)候我們想到的是實(shí)現(xiàn)兩個(gè)主要目的: XNA Framework 的一個(gè)關(guān)鍵目標(biāo)是實(shí)現(xiàn)游戲在Windows 和Xbox 360 分別運(yùn)行的簡(jiǎn)易性,以讓你可以先在Windows 上開(kāi)發(fā)一個(gè)游戲,然后簡(jiǎn)單的移植到 Xbox360 上去。

3、我們的目標(biāo)是提供一系列可以涵蓋大約95%功能的跨平臺(tái)APIs。

4、這里要說(shuō)的是由于某些原因兩個(gè)環(huán)境間仍會(huì)有部分的不同,例如有些操作可能只在一個(gè)平臺(tái)上有效。

5、我估計(jì)大部分你開(kāi)發(fā)的游戲是100%跨平臺(tái)的。

6、 制作游戲是一項(xiàng)有難度的工作。

7、從學(xué)生和愛(ài)好者想要成為專業(yè)游戲開(kāi)發(fā)人員更加困難。

8、常常要在如何實(shí)現(xiàn)繪圖,輸入,運(yùn)動(dòng)等地方反復(fù)試驗(yàn)而浪費(fèi)大量的時(shí)間和代碼。

9、XNA Framework 的另一個(gè)目的就是使這一切變得容易起來(lái)。

10、當(dāng)我們?cè)谶M(jìn)行內(nèi)部討論的時(shí)候,我們經(jīng)常提到開(kāi)發(fā)體驗(yàn)的“頭五分鐘”。

11、我們的想法是使你可以在頭五分鐘內(nèi)開(kāi)始編寫你的游戲。

12、你不必要考慮創(chuàng)建窗口,消息事件隊(duì)列的彈出和處理,你不需要給出圖片處理程序甚至掌握顯示模式。

13、你不需要?jiǎng)?chuàng)建一個(gè)圖形設(shè)備然后在窗口重新定義大小和最小化的時(shí)候管理它。

14、XNA Framework 替你處理了這一切。

15、你要做的第一件事就是為你的游戲邏輯寫代碼。

16、 另一個(gè)問(wèn)題是處理特定的游戲內(nèi)容(Content),把一個(gè)內(nèi)容導(dǎo)入到你的游戲中然后使它在運(yùn)行時(shí)為你所用。

17、XNA Framework 的一項(xiàng)特性叫做內(nèi)容管道(Content Pipeline)。

18、通過(guò)它你可以極為簡(jiǎn)單的把一個(gè)內(nèi)容引入你的游戲。

19、關(guān)于這點(diǎn)將會(huì)在以后的文章作進(jìn)一步的說(shuō)明。

20、不過(guò)想象一下,以后你可以像管理代碼一樣,將游戲的內(nèi)容作為項(xiàng)目的一部分進(jìn)行處理。

21、內(nèi)容管道將會(huì)為你處理內(nèi)容的導(dǎo)入,編譯和載入。

22、 實(shí)現(xiàn)“頭五分鐘”的另一個(gè)方面在于我們將會(huì)提供一些Start Kits,這些Start Kits 將會(huì)作為一個(gè)項(xiàng)目模版包含完整的游戲操作,以及源代碼和媒體文件。

23、在新建項(xiàng)目對(duì)話框中你可以使用它們,并在上面進(jìn)行修改。

24、最終你將可以直接打開(kāi)一個(gè)在編寫中的游戲,進(jìn)行改寫和調(diào)整之后,按下F5 就可以馬上得到反饋。

25、每一個(gè)Start Kits 都會(huì)有完整的說(shuō)明文檔,還包含一些指導(dǎo)教你如何修改增加游戲的特性。

26、 未來(lái)的版本中游戲開(kāi)發(fā)進(jìn)程的簡(jiǎn)化還將得到不斷改進(jìn)。

27、而我們總的努力方向就在于不斷地降低游戲開(kāi)發(fā)的門檻,使更多的人進(jìn)入到游戲開(kāi)發(fā)者的行列中來(lái)。

28、 Layers 在描述XNA Framework 組成的時(shí)候,我們可以認(rèn)為是一系列層次關(guān)系。

29、 Platform 平臺(tái)是XNA Framework 的最下一層。

30、它由一系列底層的原生代碼和托管 APIs 組成。

31、在這一層中有些APIs 就是Direct3D 9, XACT, XInput 和XContent. Core Framework 核心框架是第一層,并且提供核心操作用來(lái)給其它層的進(jìn)行擴(kuò)展。

32、如果你想要在直接使用托管DirectX,就應(yīng)該是在這一層。

33、在這一層次中包含了對(duì)圖像,聲音,輸入和數(shù)據(jù)存儲(chǔ)的處理。

34、當(dāng)我們要改進(jìn)XNA Framwork,附加新的功能我們就要增建這一層。

35、 Extended Framework) 擴(kuò)展框架主要致力于游戲開(kāi)發(fā)的簡(jiǎn)化。

36、當(dāng)前這一層有兩個(gè)主要的部分:應(yīng)用模塊(Application Model)和內(nèi)容管道。

37、我們將通過(guò)這一層使你可以更容易的開(kāi)發(fā)游戲,同時(shí)便于擴(kuò)展。

38、 游戲部分是最高的層次。

39、這一層包含你的游戲邏輯代碼和內(nèi)容。

40、在這一層將你的游戲邏輯和內(nèi)容相整合。

41、Start Kits、游戲模版和游戲內(nèi)容部件就屬于這一層。

42、 以上我們談?wù)摿嗽S多關(guān)于XNA Framework 的目標(biāo)以及它所劃分的功能層次。

43、但什么是XNA 呢,讓我們來(lái)看看。

44、 Application Model 應(yīng)用模塊的意圖在于抽象你的游戲所運(yùn)行的平臺(tái),讓你專注于游戲的編寫。

45、你不必關(guān)心創(chuàng)建窗口,管理消息隊(duì)列,創(chuàng)建定時(shí)器或時(shí)鐘和處理窗口消息。

46、我們?nèi)继婺氵M(jìn)行了封裝。

47、我們也提供一個(gè)GraphicsComponent(譯注:圖形組件,是一個(gè)類)以極為簡(jiǎn)單的方法對(duì)要繪圖的圖形設(shè)備進(jìn)行創(chuàng)建和管理。

48、在 Xbox360 上是不需要窗口和窗口消息的,這和Windows 有很大不同,你也不必?fù)?dān)心,因?yàn)樵趹?yīng)用模塊上兩個(gè)平臺(tái)是完全相同的。

49、我們也提供通用模塊讓你簡(jiǎn)單的和其它人在游戲中合并GraphicsComponent,通過(guò)這樣可以快速的建立可重用模塊。

50、 GameComponents (譯注:游戲組件集合,也是一個(gè)類)在你的游戲中可以由別人所寫入。

51、這樣的處理在建立和快速運(yùn)行或?qū)崿F(xiàn)一個(gè)可重用的庫(kù)的時(shí)候是很重要的。

52、這一部分是我親眼看著完善起來(lái)的,我相信我們將看到用戶通過(guò)它實(shí)現(xiàn)許多神奇的東西。

53、 我們的圖像APIs 是基于Direct3D 9 APIs 的。

54、它們非常類似于MDX 類型結(jié)構(gòu),但是經(jīng)過(guò)了精心的重構(gòu)和清理使它更容易使用,并且和.Net 的設(shè)計(jì)方針保存一致。

55、這部分和MDX 最大的不同的在于,我們決定取消固定函數(shù)式(fixed-function)的管理方式,而使用一種全渲染驅(qū)動(dòng)可編程管道(all shader-driven programmable pipeline) 我們這樣做是有原因的。

56、首先,可編程管道是實(shí)時(shí)計(jì)算機(jī)圖形的未來(lái)。

57、 Direct3D 10 和Xbox360 都不再為固定函數(shù)提供支持。

58、當(dāng)我們和一些早期的合作者和客戶討論這些問(wèn)題的時(shí)候,我們還是多少有點(diǎn)驚訝,其實(shí)他們對(duì)于跨平臺(tái)的關(guān)注大于對(duì)原固定函數(shù)的關(guān)注。

59、由于害怕在Windows 中用固定函數(shù)APIs 開(kāi)發(fā)的程序(也許開(kāi)發(fā)人員都不確切知道),在移植到Xbox360 上時(shí)立刻得到大量的編譯錯(cuò)誤。

60、當(dāng)知道你的代碼在一開(kāi)始就可以確實(shí)的跨平臺(tái)運(yùn)行,這實(shí)在是令人放心不少。

61、 我們還發(fā)現(xiàn)掌握渲染和特效是游戲編寫中要邁出的一大步。

62、所以我們嘗試在托管DirectX 1.1 到 XNA Framework (Beta 1)中提供了一些移植向?qū)降腁PI。

63、例如BasicEffect 類可以簡(jiǎn)單的通過(guò)設(shè)置屬性,包含光照、紋理等等就可以在“五分鐘”內(nèi)實(shí)現(xiàn)對(duì)一個(gè)物體的呈現(xiàn)。

64、使用BasicEffect 而不需要直接去編寫渲染,就可以很快地在屏幕上顯示出一些東西。

65、然后當(dāng)你開(kāi)始對(duì)渲染和特效較為熟悉,或者可以擴(kuò)展類BasicEffect 的呈現(xiàn)功能時(shí),你也可以直接用它們來(lái)寫你自己的渲染和特效。

66、 我們的聲音APIs 是建立在Windows 和Xbox360 通用的聲音API——XACT 上的。

67、XACT 的理念和Direct3D 的渲染部分類似。

68、聲音的制作人員使用XACT 的工具創(chuàng)建好聲音效果包(packages),并且配置好音量,重復(fù)次數(shù),聲道混音(支持5.1)等等。

69、開(kāi)發(fā)人員得到這樣的包之后再載入它,然后就可以簡(jiǎn)單的通過(guò)包的名字來(lái)調(diào)用聲音,而無(wú)須考慮緩存,流導(dǎo)入等其它管理細(xì)節(jié)。

70、例如音效人員制作了一個(gè)包含幾個(gè)wav 文件,有LFE 效果并且和其它通道混音的聲音包“BigExplosion”。

71、而程序員不需要知道這方面的細(xì)節(jié),他只要得到“BigExplosion”,然后對(duì)它調(diào)用Play。

72、漂亮!簡(jiǎn)潔! 輸入API 建立在基于一般Xbox360 的控制器(譯注:就是手柄)的XInput API 之上,它也是跨平臺(tái)的。

73、輸入提供一個(gè)立即模式(immediate mode)API 而不需要初始化。

74、不需要考慮獲得或釋放設(shè)備,設(shè)置共享模式等等。

75、你只需在恰當(dāng)?shù)目刂破黝愋蜕险{(diào)用GetState 就行了。

76、我們提供了一個(gè)GamePad 類型用來(lái)表示 Windows 和Xbox360 上的Xbox360 控制器。

77、同時(shí)在Windows 中還有鍵盤類型和鼠標(biāo)類型。

78、 存儲(chǔ)API 提供了以平臺(tái)無(wú)關(guān)方法來(lái)讀取和保存游戲數(shù)據(jù)(例如保存游戲狀態(tài),高分值等等)的途徑。

79、在Windows 中這不是什么問(wèn)題,因?yàn)槟憧梢允褂肧ystem.IO。

80、并且你可以通過(guò)環(huán)境(Environment)方法正確的為當(dāng)前用戶定位到存儲(chǔ)的數(shù)據(jù)。

81、在Xbox360 上你需要使用Profile 和存儲(chǔ)設(shè)備來(lái)操作游戲狀態(tài),例如硬盤和記憶卡。

82、XNA Framework 的存儲(chǔ)處理部分使這些變得很容易,并可以達(dá)到跨平臺(tái)的效果。

83、我們?cè)赪indows 上對(duì)Xbox360 這些操作進(jìn)行了模擬,以使你用完全一樣的代碼在兩個(gè)平臺(tái)上讀取和寫入數(shù)據(jù)。

84、 數(shù)學(xué)API 提供了一些游戲中常用的數(shù)學(xué)類型,例如Vector2, Vector3, Vector4, Matrix, Plane,還有 Ray。

85、我們也提供了一些卷綁定(bounding volume)類型例如 BoundingBox, BoundingSphere 和 BoundingFrustum。

86、我們的綁定類型也包含交集和容積(containment)測(cè)試的方法。

87、需要注意的是我們的數(shù)學(xué)庫(kù)默認(rèn)是右序的。

88、這里我指的是在Matrix(矩陣)上的情況。

89、例如我們只提供了一個(gè)對(duì)矩陣右序查看的CreateLookAt 方法,而不是分別提供CreateLookAtLH 和 CreateLookAtRH。

90、我們這樣設(shè)計(jì)的目的在于使其它外部?jī)?nèi)容和中間件的整合都較為統(tǒng)一而容易。

91、如果大家都遵守這個(gè)約定那么按照這樣開(kāi)發(fā)的XNA Framework 和外部的APIs 就可以較容易的聯(lián)合使用。

92、以上我說(shuō)的是默認(rèn)的時(shí)候,進(jìn)行左序操作是無(wú)需其它條件的。

93、如果你確實(shí)需要使用左序(或者其它方法)操作也可以,你只需要自己寫操作代碼。

94、 目前我們注意力主要在剛發(fā)布到你手上的XNA Game Studio ExpressV1.0 以及XNA Framework 上。

95、但是我們也在考慮未來(lái)版本的特性。

96、如前面提過(guò)的為了添加新的功能操作,我們將對(duì)Core Framework 層進(jìn)行擴(kuò)展。

97、同時(shí)對(duì)Extended Framework 進(jìn)行增建,使得用XNA Game Studio Express 創(chuàng)建游戲更容易。

98、我們也會(huì)推出XNA Game Studio Professional,以使開(kāi)發(fā)者可以用XNA Framework 在 Xbox360 上開(kāi)發(fā)商業(yè)游戲。

99、請(qǐng)?jiān)谙乱粋€(gè)月中留意這方面的情況。

100、 我提到XNA Framework 的一個(gè)目標(biāo)在于讓編寫游戲更容易,使你專注于你的游戲而不是平臺(tái)。

101、它到底有多簡(jiǎn)單呢?下面的代碼顯示了一個(gè)可運(yùn)行的 XNA Framework 游戲應(yīng)用程序大體框架。

102、 public class SampleGame : Game { private GraphicsComponent graphics; public SampleGame() { this.graphics = new GraphicsComponent(); this.GameComponents.Add(graphics); } protected override void Update() { } protected override void Draw() { this.graphics.GraphicsDevice.Clear(Color.Blue); this.graphics.GraphicsDevice.Present(); } static void Main(string[] args) { using (SampleGame game = new SampleGame()) { game.Run(); } } } 感謝你花時(shí)間閱讀這篇文章。

103、我希望我已經(jīng)講明白了XNA Framework 到底提供什么。

104、Beta 版將會(huì)在幾天內(nèi)放出,所以歡迎您下載下來(lái)使用。

105、然后告訴我們那些是你喜歡的部分,哪些部分是你不喜歡的或者不清楚的。

106、我們期望能為你做出我們最好的產(chǎn)品。

本文到此結(jié)束,希望對(duì)大家有所幫助。


版權(quán)說(shuō)明: 本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!


標(biāo)簽:

最新文章:

国产又爽又猛又粗又色对黄| 国产传媒一区二区三区| 久久国产人妻一区二区免费| 五月婷婷缴情七月丁香 | 欧美日韩综合免费视频| 亚洲精品偷拍一区二区三区| 免费在线成人激情视频| 又大又长又粗又猛国产精品| 国产日产欧美精品视频| 亚洲深夜精品福利一区| 中文字幕一区二区熟女| 婷婷色网视频在线播放| av在线免费播放一区二区| 欧美不卡午夜中文字幕| 人妻一区二区三区多毛女| 黄片在线观看一区二区三区| 97人妻人人揉人人躁人人| 千仞雪下面好爽好紧好湿全文| 久久大香蕉一区二区三区| 情一色一区二区三区四| 国产欧美日产中文一区| 夫妻激情视频一区二区三区| 国产一区二区三区精品免费 | 成人综合网视频在线观看| 国产综合一区二区三区av| 欧美日韩一区二区午夜| 成人午夜在线视频观看| 国产传媒一区二区三区| 又大又紧又硬又湿又爽又猛| 色婷婷在线精品国自产拍| 最近中文字幕高清中文字幕无| 亚洲欧美日韩精品永久| 亚洲一区二区久久观看| 国产成人av在线免播放观看av| 大香蕉精品视频一区二区| 日韩一级一片内射视频4k| 久久精视频免费视频观看| 成人日韩视频中文字幕| 久久精品亚洲精品一区| 午夜小视频成人免费看| 毛片在线观看免费日韩|