Win8 Metro App里玩XNA:框架問題解決方案


  華麗的鋪墊

XNA的介紹是,XNA是基於DirectX的游戲開發環境,是微軟對於Managed DirectX 的修正及擴充版本。XNA中的X表示能夠在WindowsXbox和合作伙伴之間達到跨平台的強大的軟件工具。N表示“下一代(Next-generation)”,A表示“架構(Architecture)”。在很長的一段時間XNA備受關注,畢竟C#的學習成本要低的多,但是很悲催的是微軟下一代的操作系統WinRT中,至少說Windows8里並不源生支持XNA,當然了,VS2012開發工具里也沒有內置,寫到這里可能會被大家認為是吐槽,好吧,我想說的是VS2010也沒有帶XNA,也許不久的將來XNA Studio 5.0或者4.8什么的會出個SDK安裝。

這個問題卻影響到了很多開發者,要知道,XNA真正所被大家用的風生水起卻是在WindowsPhone7上,WindowsPhone7官方引導開發游戲用XNA,一些朋友直接或間接的原因在XNA上走出較遠路程,例如深藍色右手馬寧ElvisWilliams……現在Windows8中的Metro(現在叫Modern)Application還不能支持XNA,至於什么時候,呵呵等吧,WinRT官方的引導是使用DirectX C++或者JS開發游戲應用,至於說XAML/C#(其實就是Silverlight)之類的被扔進了應用方面,其實Silverlight也能做出好的游戲,這點完全可以通過最近在搞的一個游戲產品證明。

如果說XNA現在不能上Win8,就意味着開發者們要轉換技術,就意味着之前的玩意全部成為了過去,就意味着對平台的懷疑,就意味着可能性的流失……您讓我們情何以堪啊……

  這才是主題

前段時間終於盼到了MonoGame支持了Win8 Metro(Modern)UI,這樣就可以在VS2012里建XNA項目,等等,MonoGame是什么?好吧,一句話說,這是一群酷B的開發者想在所有平台上跑XNA的開源框架,建立在MonoDevelop基礎上使用SharpDX開發,而MonoDevelop是一群更加酷B的開發者想在所有平台上跑C#的酷B事業(例如Unity3D的C#編譯器,例如某MMO的跨平台,額,你知道的太多了。),SharpDX是C#語言去編寫DirectX的酷B類庫。當大家知道這三個都是開源的話,就知道為啥激動地重復說酷B啦。

MonoGame:http://monogame.codeplex.com/ https://github.com/mono/MonoGame
MonoDevelop:http://monodevelop.com/
SharpDX:http://sharpdx.org/

其實對於純粹的做開發而言MonoDevelop是不需要的,只需要MonoGame和SharpDX,但是MonoDevelop有它獨特的作用,在以后我們就會碰到。

如果你看過之前的園子里另外兩位所發的介紹在Windows 8 里玩MonoGame文章,應該並不陌生,他們分別是:suguoqiang(抱歉少年,不知道你怎么稱呼)、xnagame(凱威同學)

但很可惜介紹的不太全面,無法馬上直接應用,如果解決不了的話很容易放棄,那么我來詳細介紹一下如何弄環境:

----------------------------------------------------
首先需要……(大約3000字,附圖5張)
----------------------------------------------------

好吧,我知道大家懶得看這么多字和圖,其實我也懶得寫,對於有耐心讀到這里的朋友,心中就一個問題:“怎么在Win8里玩XNA?Mono神馬的跟哥有毛線關系!”,那么用三段解決這個問題吧。

首先你下載一下這個模板:http://files.cnblogs.com/nowpaper/ProjectTemplatesCSharp.rar

注意,這一切最好在Windows8里進行,以及確保擁有VS2012的開發環境,這個模板在MonoGame工程里有提供,但是直接使用是不行的,因為少了很多東西,所以我在MonoGame的VS2012 temple原版的基礎上做了一些修改,把所缺的全部補齊,使用者完全不需要去安裝和部署各種亂七八糟的環境。

然后解壓到VS2012的模板目錄,通常在這里:%USERPROFILE%\Documents\Visual Studio 2012\Templates\ProjectTemplates\Visual C#

在這里面建立了一個XNA目錄,主要是方便將來找起來這個模板方便。

最后打開VS2012新建工程,在Visual C#里找到MonoGame模板,建立程序。

注意Lib目錄中的文件,這是必備的類庫,已經將其補全,不用擔心少什么。

現在打開Game1.cs,感動吧,熟悉的XNA回來了哦,可以運行一下看看,然后Esc關閉,在Metro界面里找一下。

在運行中,你會發現鼠標是不可見的,需要在Game構造函數里面寫上一句:IsMouseVisible = true;

這個例子你可以在這兒下載:點擊這里下載 本例可以獨立運行,不用安裝模板,因為實在太懶了,不想每次都得安裝半天各種各樣的神奇玩意。

寫到這里,我們可以看到一個很有意思可能,是不是XNA的游戲都可以通過這種方式轉移到Win8上?通過測試,這是肯定的,WindowsPhone7上XNA的游戲完全可以移植,但是尚有一些問題還未解決,例如Content資源如何處理等等,那么在下一篇將使用一個WindowsPhone XNA游戲移植到Windows8里,敬請期待吧,少年。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM