开发适用于手持 Windows 设备的 GDK 游戏时的其他注意事项

除了 针对手持 Windows 设备优化 GDK 游戏中列出的检查外,开发人员在开发游戏以在手持设备上工作时还应考虑其他几个注意事项。

手持设备的停靠行为

某些手持设备可能会在停靠时播放。 虽然没有简单的 API 可以检查如果手持设备已停靠,但停靠设备可能会附加外部显示器。 开发人员可以使用 EnumDisplayDevicesEnumDisplaySettings API 为外部显示器检查。

请注意,还有许多其他方法也可以确定存在外部显示器。

当手持设备停靠时:

  • 检查其他游戏板。 手持设备的内置一个将在那里:但是,用户可能已连接其他游戏板。
  • 检查附加显示器的屏幕大小。
  • 虚拟键盘建议保持不变,因为游戏板仍然是主要输入机制。
  • 某些玩家可能会连接鼠标和键盘,就像在主机上一样。

有保证的输入

虽然不同的游戏手持设备可能具有其他输入选项,但开发人员可以依靠游戏手持设备具有以下输入:

  • A、B、X、Y 按钮
  • 左右缓冲键
  • 左触发器和右触发器
  • 左右拇指摇杆
  • D-pad
  • Menu button
  • View button

虽然它被提及为停靠时需要检查的东西,但在所有情况下,无论是否停靠,开发人员都应始终确保为所有附加的游戏板和输入设备检查。

电源

想要知道手持设备是否使用交流电源而不是电池的游戏可以调用 GetSystemPowerStatus 函数。 此函数显示设备是否使用交流电源,并提供电池充电状态的摘要 (高、低、严重、充电) 。

开发人员还应考虑对设备电池使用时间的影响,因为不清楚给定游戏可能需要多少电量。 Xbox Sustainability Toolkit 中关于可能节能的一般建议,这些建议也适用于手持设备。

最大的节能来自:

  • 启用 VSync 以帮助 GPU 有更多的空闲时间并节省电源。
  • 降低内部呈现分辨率并使用升级传递。
  • 降低帧速率以节省电量。 这可能会影响游戏玩法。
  • 当全屏菜单或 UI 元素显示在 (或游戏暂停) 时,停止呈现世界。
  • 在玩家离开的情况下,在检测到输入空闲时暂停游戏。

屏幕尺寸

虽然不同的游戏手持设备具有不同的屏幕分辨率,但你可以依赖以下各项:

  • 屏幕大小至少为 7 英寸。
  • 屏幕的纵横比为 16:9 或 16:10。

想要了解实际集成到设备的显示器的屏幕尺寸的开发人员可以调用 GetIntegratedDisplaySize 函数。 此函数将报告物理集成到计算机的显示器的对角线屏幕大小。

手持体验最佳做法示例

有关构建 & 优化手持设备的游戏的更多见解,我们发布了两个示例:本机C++示例和Unity托管 C# 示例。 两者都提供了一组类似的最佳做法,介绍如何利用 API 轻松管理游戏手持体验。

  • 确定设备是否为手持设备。
  • 确定设备是使用电池电源、充电还是使用外部电源运行。
  • 查找特定于设备的属性,包括集成显示属性。
  • 相应地处理 DPI 更改并缩放 UI。
  • 利用虚拟键盘输入文本。
  • & 类型查找网络设备。
  • 确定网络和蓝牙连接。
  • 处理来自游戏板、键盘和鼠标的输入。
  • 确定输入模态 (即) 使用的最新输入设备。

这些示例将继续更新,因为 Windows 增强功能对 Windows 手持游戏方案有利,并且我们收集针对这些设备生成的游戏开发人员的反馈。

若要获取这些示例,请参阅: