Html5 canvas 避免Phaser.io中的幻数

Html5 canvas 避免Phaser.io中的幻数,html5-canvas,phaser-framework,Html5 Canvas,Phaser Framework,在Phaser.io中HTML5画布游戏开发的问题域中,硬编码“幻数”的问题感觉特别难以避免。以下是一些似乎经常出现的具体例子: 精灵属性如大小、位置等。硬编码这些值将在具有意外大小、方向或像素密度的视口上导致问题 物理体属性如速度、力、粒子数等。如果帧速率降至60 fps以下,对这些值进行硬编码将导致欠功率设备出现问题 时间值例如用于计时器和对象之间的时间值。如上所述,硬编码值将在电源不足的设备上导致意外行为,因为一毫秒的游戏时间将不再等于一毫秒的实时时间 我理解这些问题的解决方案往往取决

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

  • 精灵属性
    大小
    位置
    等。硬编码这些值将在具有意外大小、方向或像素密度的视口上导致问题

  • 物理体属性
    速度
    、粒子数等。如果帧速率降至60 fps以下,对这些值进行硬编码将导致欠功率设备出现问题

  • 时间值例如用于
    计时器
    对象之间的时间值。如上所述,硬编码值将在电源不足的设备上导致意外行为,因为一毫秒的游戏时间将不再等于一毫秒的实时时间


我理解这些问题的解决方案往往取决于所讨论的游戏,但这些问题似乎是如此普遍和广泛,以至于必须有一些一般常识的最佳实践来避免它们。特别是对于
Phaser.io

中的游戏开发,这些事情都可以通过充分的准备来解释

精灵属性(即缩放)

关于相位器的缩放问题,一个很好的资源是:

基本上,您可以根据设备的像素比例缩放游戏

物理和时间(减速调整)

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

通常,您会有默认的性能设置,用户可以通过设置菜单进行调整。这是简单而有效的

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

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