【问题标题】:Avoiding magic numbers in Phaser.io在 Phaser.io 中避免幻数
【发布时间】:2015-11-13 02:45:11
【问题描述】:

Phaser.io 的 HTML5 画布游戏开发问题域中,硬编码“幻数”问题感觉特别难以避免。以下是一些似乎经常出现的具体示例:

  • Sprite 属性,例如 sizeposition 等。硬编码这些值会导致视口出现意外大小、方向或像素密度的问题。

  • 物理体属性,例如velocityforce、粒子数等。硬编码这些值会在功率不足的设备上导致问题,如果帧速率低于 60 fps。

  • 时间值对于TimerTween 对象。与上述相同,硬编码值会在功率不足的设备上导致意外行为,因为一毫秒的游戏时间将不再等同于一毫秒的实时时间。

我知道这些问题的解决方案往往取决于所讨论的游戏,但这些问题似乎如此普遍和广泛传播,以至于必须有一些普遍的常识性最佳实践来避免它们。专门用于Phaser.io的游戏开发

【问题讨论】:

    标签: html5-canvas phaser-framework


    【解决方案1】:

    这些事情可以通过充分的准备来解决。

    精灵属性(即缩放)

    这里有一个很好的解决 Phaser 问题的资源:

    http://www.joshmorony.com/how-to-scale-a-game-for-all-device-sizes-in-phaser/

    基本上,您可以根据设备的像素比率来扩展您的游戏。

    物理和时间(减速调整)

    在这里,我们必须根据用户设备的性能调整游戏中的参数。这个问题已经在 PC 游戏中解决了几十年,因为每台机器都大不相同。

    通常,您将拥有默认性能设置,用户可以通过设置菜单进行调整。这既简单又有效。

    如今,这些值通常会针对用户的设备进行单独调整。然后用户可以根据需要手动调整它们。

    每个设备更改的所有设置都可以存储在您选择的位置的单例/cfg 类中。

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 2018-01-13
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      相关资源
      最近更新 更多