Win8 Metro App里玩XNA:移植XNA游戲到Win8


  Ready !

在本文中,將把一個WindowsPhoneXNA的游戲移植到Win8 Metro(Modern)風格上,直接在Win8的界面里可以看到,而不是一個exe的執行程序,使用非常簡便的方式就完成這個移植過程,移植其他更復雜的游戲也是大同小異,當然了如果你的應用里使用了大量的平台特性,你就得自行處理和更改,在本文中准備了一個XNA的游戲例子,該游戲是微軟MSDN中的例子,叫做ChaseCamera的介紹攝像機工程,你可以直接到微軟官方網站下載:http://xbox.create.msdn.com/zh-CN/education/catalog/sample/chasecamera

先看看在WP7模擬器上的運行效果:

Build完成之后,拷貝或切換到Windows8開發環境中,下一步就會使用到。

  In Windows 8

確保你有VS2012的開發環境,現在新建一個MonoGameApplication,選擇新建項目->在Visual C#里找到MonoGame模板(這里不明白的參看前一篇《Win8 Metro App里玩XNA:框架問題解決方案》):

在項目里建立Content目錄,在瀏覽器里找到剛才的ChaseCamera工程目錄,打開bin\Windows Phone\Debug或者bin\Windows Phone\Release目錄,你會發現Content目錄,打開它將其中所有的文件(通常都是.xnb)全部添加到項目的Content目錄下,將添加的所有文件的資源生成操作屬性改為“Content”(“內容”)。

現在把代碼文件拷貝過來,這需要一些注意的地方,例如在ChaseCamera里沒有Game1.cs,而是ChaseCameraGame.cs,刪掉原來的Game1.cs,然后將下面的文件添加到工程中:
ChaseCamera.cs
ChaseCameraGame.cs
Ship.cs

這些文件其實就是主要的邏輯代碼文件,但是需要做一下修改,先刪除掉原有代碼文件中的程序入口點,如果你打算改工程的話,可以試試。

然后把原有的入口點中要開啟的Game變成ChaseCameraGame,注意命名空間。

也許會有人問,就這么簡單?是的!就是這么簡單,運行一下看看吧。

看起來不錯哦,但是這並沒有完結,你會發現一個問題,就是添加的資源是.xnb文件,而不是真正的資源文件(.x、.bmp、.fbx),剛才我們使用了VS幫忙生成,其他的方式也有民間高手開發的xnb生成工具,但大多都是處理單一的內容,要么是生成Texture的要么是生成聲音的,混合起來的沒有找到,如果加之有自定義的內容管線,那就悲劇了,所以這是我們需要忍耐的問題:無法在Windows8的開發環境里直接得到xnb文件,如果哪位有好辦法一定要不吝告知,淚奔中啊。。。

本例下載:請點擊這里下載

細心的朋友一定會發現ChaseCamera實際上還有Windows版,打開研究之后其實代碼和WindowsPhone版是一樣的,如果玩玩的話其實對鍵盤也是支持的哦,最后可以落到本篇題目,XNA游戲借助MonoGame就完全能順利的移植到Win8 Metro(Modern)風格下。

既然XNA已經如此順林的在Win8里跑起來,那么在此之上的第三方XNA引擎是不是可以玩轉Win8呢,這是完全沒有問題的,例如cocos2d-xnanine engine……下一篇將介紹cocos2d-xna運行在Win8上的移植。


免責聲明!

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



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