說到遊戲多數開發人員一定最先想到的就是 C++或者DirectX 等3D遊戲引擎,在我們的Windows phone8中同樣支援 C++ 與 Direct 3D 的開發,今天我就給大家介紹一下這種開發模式。
首先給家說明一下,在windows phone8 中微軟並沒有提供像 windows 8 的那種直接支援C++調用 WinRT的介面 所以有一部分的 windows phone8 的特性功能在C++就就比較遺憾不可以使用了。
當然如果我們的遊戲需要使用以上的功能我們也可以通過混合開發模式進行開發,混合開發模式模板分為兩種 “XAML 和 Direct3D 項目模板” 和 “Direct3D 和 XAML” 項目模板。
其中“XAML 和 Direct3D 項目模板” 是在原有的Xaml+Managed 程式碼的開發模式中引入一個 DrawingSurface 控制項在UI 中顯示該控制項也是 FrameworkElement 的子類可以當做一個控制項使用在Xaml檔案中。
另外“Direct3D 和 XAML 項目模板” 是使用的一個 DrawingSurfaceBackgroundGrid 控制項是整合與 Grid 控制項必須作為頁面的根節點(也就是背景,會覆蓋整個頁面)並且此中開發模板的運行效率會略高於前者。
混合開發模式的優勢 - 此種開發模板擁有完整的UI架構以及完整的頁面聲明周期,使應用開發迅速簡單,可以靈活的使用Direct3D控制項呈現在XAML頁面中,又可以使用Managed 程式碼中調用本地代碼,並且可以調用windows phone8 的特殊功能。
純Direct 3D開發模式更適用於複雜的3D遊戲,以及跨平台的移植。
混合開發模式下的項目
<DrawingSurfaceBackgroundGrid x:Name="DrawingSurfaceBackgroundGrid"> <DrawingSurface x:Name="DrawingSurface"/> </DrawingSurfaceBackgroundGrid>
在Direct 開發中使用Windows phone8 的特性
Link: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207052(v=vs.105).aspx
Direct3D with XAML Marble Maze
執行個體代碼下載
以上是一個本地代碼採用混合開發模式的一個講解,希望通過大家的努力在Windows phone 8出現更多優秀的遊戲作品。
此文是 升級到WP8必需知道的13個特性 系列的一個更新 希望這個系列可以給 Windows Phone 8開發人員帶來一些開發上的便利。
同時歡迎大家在這裡和我溝通交流或者在新浪微博上 @王博_Nick