手机和桌面游戏开发之间的差别

2013/12/5

适用于:仅限于 Windows Phone 8。

从 Windows Phone 8 开始,可以使用本机代码和 Direct3D 创建 Windows Phone 应用。这意味着为 Windows 8 和 Windows Phone 8 创建游戏时,许多代码和编程方法都是相同的。但是,由于更小的外观设置、不同的输入机制和可用的 API 集合,为手机平台创建游戏时,您需要考虑某些重要的差异。本主题重点介绍了使手机平台不同的主要领域。

本主题包含以下各节。

Windows Phone 8 支持 DirectX 库中 API 的子集。最值得注意的是,Windows 映射处理组件 (WIC) 和 Direct2D 库完全不受支持。手机上支持的 API 在 9_3 功能级别上受支持,这意味着与支持更高功能级别的设备上运行的相同 API 相比,这些 API 有不同的表现。下面是一些示例,其中在使用 9_3 功能级别时,尤其是在为图形设备设置交换链时,API 在手机上的行为与其在桌面应用中的行为不同。有关手机上 Direct3D 的 API 差异的详细信息,请参见 Supported Direct3D APIs for Windows Phone

Windows 8 应用可以使用 WIC 以多种图像格式(如 PNG 文件)加载纹理。Windows Phone 不支持 WIC。面向手机的游戏应该使用 .dds 文件格式的纹理。

由于手机屏幕较小,建议您对手机游戏使用较小的纹理。这不会改进性能,但这能够使应用的 XAP 文件显著缩小且不会影响游戏的视觉保真度。

Windows 8 应用可以使用 Direct2D 将 2-D 图形呈现到屏幕。呈现 GUI 组件(如,菜单和 HUD)就是典型的例子。面向手机的游戏应该使用 Direct3D 模拟二维 sprite 的行为,来绘制使用纹理的并与屏幕对齐的四边形。

Windows Phone 不支持游戏手柄或硬件键盘输入。使用 Windows 8 上用于鼠标输入的 PointerPressedPointerReleasedPointerMoved 处理触控输入。

在 Windows Phone 上,术语“Direct3D 应用”是指使用本机应用模型并且仅可调用本机代码的应用。此类型的应用不支持任何 XAML 控件,如用于文本输入的文本框。有一些帮助器功能允许本机应用从软件输入面板 (SIP) 键盘接收文本输入,以启用自定义生成的文本框。有关在本机应用中处理文本输入的更多信息,请参见如何在 Windows Phone 8 的 Direct3D 应用中处理键盘输入

Windows Phone 重新实现桌面上提供的 Microsoft 媒体基础 (MF) API 的子集。您应该使用 IMFMediaEngine 接口为游戏实现后台音频。有关手机上支持的 MF 接口的更多信息,请参见 演练:使用 Windows Phone 8 的 Microsoft 媒体基础

大理石迷宫是一款功能全面的游戏,是为说明 Windows 商店 应用的游戏开发而开发。有关如何开发该游戏的信息,请参见开发大理石迷宫。该应用已经被移植在 Windows Phone 8 上运行。若要下载示例和阅读为使之在 Windows Phone 上运行而做出的更改,请参见 Windows Phone 8 的大理石迷宫示例

DirectX 工具包 (DirectXTK) 是用于编写 Direct3D 11 代码的帮助器类的集合。DirectXTK 既支持桌面开发,也支持手机开发,而且可以帮助您实现一些在手机上可能挑战性更强的常见方案,如加载纹理、二维绘制和呈现文本。该工具箱的功能包括:

  1. SpriteBatch - 简单而有效的 2-D sprite 呈现

  2. SpriteFont - 基于位图的文本呈现

  3. Effects - 用于常见呈现任务的内置着色器集

  4. PrimitiveBatch - 简单而有效的绘制用户基元的方式

  5. GeometricPrimitive - 绘制基本形状,如立方体和球体。

  6. CommonStates - 提供常用的 Direct3D 状态对象的工厂

  7. VertexTypes - 用于常用的顶点数据格式的结构

  8. DDSTextureLoader - 轻量 DDS 文件纹理加载器

  9. WICTextureLoader - 基于 WIC 的图像文件纹理加载器(Windows Phone 8 不支持它)

  10. ScreenGrab - 轻量屏幕快照保存器

有关 DirectXTK 的更多信息,请参见 CodePlex 上的项目页面。

显示:
© 2014 Microsoft