Windows Phone 8 本地代码实现游戏


说到游戏多数开发者一定最先想到的就是 C++或者DirectX 等3D游戏引擎,在我们的Windows phone8中同样支持 C++ 与 Direct 3D 的开发,今天我就给大家介绍一下这种开发模式。

首先给家说明一下,在windows phone8 中微软并没有提供像 windows 8 的那种直接支持C++调用 WinRT的接口 所以有一部分的 windows phone8 的特性功能在C++就就比较遗憾不可以使用了。

升级到WP8必需知道的13个特性 系列文章目录地址:

当然如果我们的游戏需要使用以上的功能我们也可以通过混合开发模式进行开发,混合开发模式模板分为两种 “XAML 和 Direct3D 项目模板” 和 “Direct3D 和 XAML” 项目模板。

其中“XAML 和 Direct3D 项目模板” 是在原有的Xaml+托管代码的开发模式中引入一个 DrawingSurface 控件在UI 中显示该控件也是 FrameworkElement 的子类可以当做一个控件使用在Xaml文件中。

 

另外“Direct3D 和 XAML 项目模板” 是使用的一个 DrawingSurfaceBackgroundGrid 控件是集成与 Grid 控件必须作为页面的根节点(也就是背景,会覆盖整个页面)并且此中开发模板的运行效率会略高于前者。

混合开发模式的优势 - 此种开发模板拥有完整的UI框架以及完整的页面声明周期,使应用开发迅速简单,可以灵活的使用Direct3D控件呈现在XAML页面中,又可以使用托管代码中调用本地代码,并且可以调用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出现更多优秀的游戏作品。

相关内容