TimeStep

.Core. TimeStep

Phaser用来处理游戏循环的核心runner类.它可以使用请求动画帧, 或SetTimeout,以在浏览器内创建一个连续的循环. 每次循环启动时,都会调用 `TimeStep.step` ,然后传递给核心游戏更新循环, 这是你游戏的核心.请求动画帧能够处理多少,它就会触发多少次 在目标设备上. 请注意,在很多情况下,浏览器会停止更新您的游戏.比如如果玩家 切换选项卡,或者用另一个应用程序覆盖浏览器窗口.在这些情况下, `heartbeat` 你的游戏将会暂停,只有当玩家把注意力放回游戏时才会继续.没有办法避免 在这种情况下,你所能做的就是使用浏览器和Phaser提供的可见性事件来检测何时 它已经发生,然后优雅地恢复.

Constructor

new TimeStep(game, config)

Since:
  • 3.0.0
Parameters:
Name Type Description
game Phaser.Game 相位器的参考.拥有此时间步长的游戏实例.
config Phaser.Types.Core.FPSConfig

Members

(readonly) actualFps :number

Since:
  • 3.0.0
Default Value:
  • 60
每秒帧数的指数移动平均值.
Type:
  • number

callback :Phaser.Types.Core.TimeStepCallback

Since:
  • 3.0.0
Default Value:
  • NOOP
每次时间步长步进时要调用的回调.
Type:

delta :number

Since:
  • 3.0.0
Default Value:
  • 0
自最后一个游戏步骤以来的增量时间,以毫秒为单位.这是一个钳制和平滑的平均值.
Type:
  • number

deltaHistory :Array.<number>

Since:
  • 3.0.0
保存先前增量值的内部数组,用于增量平滑.
Type:
  • Array.<number>

deltaIndex :number

Since:
  • 3.0.0
Default Value:
  • 0
三角洲历史位置的内部索引.
Type:
  • number

deltaSmoothingMax :number

Since:
  • 3.0.0
Default Value:
  • 10
为计算平滑移动平均值而保留的最大差值数. 这可以在游戏配置中通过 `fps.deltaHistory` 属性进行更改.默认值为10.
Type:
  • number

(readonly) forceSetTimeOut :boolean

Since:
  • 3.0.0
Default Value:
  • false
通过设置,您可以强制时间步长使用设置超时,而不是请求动画帧 将游戏配置对象中的 `forceSetTimeOut` 属性设置为 `true` .它不能在运行时更改.
Type:
  • boolean

(readonly) frame :number

Since:
  • 3.0.0
Default Value:
  • 0
游戏当前所在的帧.这个计数器在每一个游戏步骤都会增加一次,不管增加多少 时间已经过去,并且不受增量平滑的影响.
Type:
  • number

(readonly) framesThisSecond :number

Since:
  • 3.0.0
Default Value:
  • 0
每秒处理的帧数.
Type:
  • number

(readonly) game :Phaser.Game

Since:
  • 3.0.0
相位器的参考.游戏实例.
Type:

(readonly) inFocus :boolean

Since:
  • 3.0.0
Default Value:
  • true
浏览器目前是否被页面可见性应用编程接口视为焦点? 该值在 `blur` 方法中设置,该方法由游戏实例自动调用.
Type:
  • boolean

lastTime :number

Since:
  • 3.0.0
Default Value:
  • 0
由上一步的 `performance.now` 返回的时间.
Type:
  • number

minFps :number

Since:
  • 3.0.0
Default Value:
  • 5
您希望时间步长运行的最小每秒钟速率.
Type:
  • number

(readonly) nextFpsUpdate :number

Since:
  • 3.0.0
Default Value:
  • 0
下一次fps速率更新的时间. 当fps更新发生时, `framesThisSecond` 值被重置.
Type:
  • number

now :number

Since:
  • 3.18.0
Default Value:
  • 0
当前步骤开始时由 `performance.now` 返回的时间. 这可能与 `time` 值不同,因为它不是基于增量值计算的.
Type:
  • number

panicMax :number

Since:
  • 3.0.0
Default Value:
  • 120
通常情况下,在浏览器因FPS速率而死机后,冷却时间设置为多少帧 作为切换标签和重新获得焦点的结果. 这可以在游戏配置中通过 `fps.panicMax` 属性进行更改.默认值为120.
Type:
  • number

(readonly) raf :Phaser.DOM.RequestAnimationFrame

Since:
  • 3.0.0
请求动画帧事件处理程序.
Type:

rawDelta :number

Since:
  • 3.0.0
Default Value:
  • 0
一次更新和下一次更新之间的实际经过时间(毫秒). 与 `delta` 不同,该值不应用平滑,封顶或平均. 所以在数学计算中使用这个值时请小心.
Type:
  • number

(readonly) running :boolean

Since:
  • 3.0.0
Default Value:
  • false
一种标志,在时间步开始运行时设置,停止时切换. 该值与 `started` 的区别在于,在以下情况下会切换 `running` TimeStep被发送到睡眠状态,其中-as `started` 保持为 `true` ,仅在以下情况下改变 时间步长实际上是停止的,而不仅仅是暂停.
Type:
  • boolean

smoothStep :boolean

Since:
  • 3.22.0
对相位器内部计算中使用的差值进行平滑处理? 这可以在游戏配置中通过 `fps.smoothStep` 属性进行更改.默认为 `true` . 平滑有助于在浏览器选项卡切换或其他情况下稳定增量值 这可能导致显著的δ尖峰或下降.默认情况下,它已在相位器3中启用 从第一个版本开始,但是现在暴露在这个属性下(以及相应的游戏配置 `smoothStep` value),允许您在需要时轻松禁用.
Type:
  • boolean

(readonly) started :boolean

Since:
  • 3.0.0
Default Value:
  • false
一种标志,在时间步开始运行时设置,停止时切换.
Type:
  • boolean

startTime :number

Since:
  • 3.0.0
Default Value:
  • 0
游戏开始运行的时间.如果游戏在那时,这个值被调整 暂停并继续.
Type:
  • number

targetFps :number

Since:
  • 3.0.0
Default Value:
  • 60
运行时间步长的目标每秒钟速率. 设置此值实际上不会改变浏览器的运行速度,也就是说 相位器的控制.相反,它允许您确定性能问题以及时间步长 失控了.
Type:
  • number

time :number

Since:
  • 3.0.0
Default Value:
  • 0
在当前步骤开始时计算的时间,由增量值平滑.
Type:
  • number

Methods

blur()

Since:
  • 3.0.0
当DOM window.onBlur事件触发时,由Game实例调用.

destroy()

Since:
  • 3.0.0
破坏时间步长.这将停止请求动画帧,停止步骤,清除回调和空 任何物体.

focus()

Since:
  • 3.0.0
当DOM window.onFocus事件触发时由游戏实例调用.

getDuration() → {number}

Since:
  • 3.17.0
获取游戏运行的持续时间,以秒为单位.
Returns:
持续时间(秒).
Type
number

getDurationMS() → {number}

Since:
  • 3.17.0
获取游戏运行的持续时间,以毫秒为单位.
Returns:
持续时间(毫秒).
Type
number

pause()

Since:
  • 3.0.0
当可见性应用编程接口说游戏是`隐藏`时调用

resetDelta()

Since:
  • 3.0.0
重置时间,上次时间,fps平均值和增量历史. 当浏览器恢复睡眠时自动调用.

resume()

Since:
  • 3.0.0
当可见性应用编程接口显示游戏再次`可见`时调用(标签切换回视图等)

sleep()

Since:
  • 3.0.0
将时间步长发送到睡眠状态,停止请求动画帧(或设置时间输出),并将 `running` 标志切换为假.

start(callback)

Since:
  • 3.0.0
开始运行时间步长(如果尚未运行). 由游戏启动过程自动调用.
Parameters:
Name Type Description
callback Phaser.Types.Core.TimeStepCallback 每次时间步长步进时要调用的回调.

step()

Since:
  • 3.0.0
主要步骤法.每次浏览器更新时都会调用这个函数,或者通过请求动画帧, 或者通过设置超时.它负责计算差值,帧总数,冷却历史等. 您通常不应该直接调用此方法.

stop() → {this}

Since:
  • 3.0.0
停止时间步运行.
Returns:
TimeStep对象.
Type
this

tick()

Since:
  • 3.0.0
手动调用 `TimeStep.step` .

wake(seamlessopt)

Since:
  • 3.0.0
唤醒时间步长,重新启动请求动画帧(或设置时间输出),并将 `running` 标志切换为真. `无接缝`参数控制唤醒是否应该调整开始时间.
Parameters:
Name Type Attributes Default Description
seamless boolean <optional>
false 根据上次时间值调整开始时间.