Crafty.timer

操纵游戏的记号

方法

Back to top

Crafty.timer.FPS()

public void Crafty.timer.FPS()

每秒返回目标帧。这不是实际的帧速率。

public void Crafty.timer.FPS(Number value)
value

目标速率

事件

FPSChange [new target FPS = {Number}]
当用户改变目标 FPS 时触发

每秒设置目标帧。这不是实际的帧速率。默认值是50。

参见

Back to top

Crafty.timer.simulateFrames()

public this Crafty.timer.simulateFrames(Number frames[, Number timestep])

通过若干帧推进游戏状态,并在最后绘制结果阶段。这对测试和调试有用。

frames

要模拟的帧数

timestep

每个帧的传递时间。如果未指定,默认为 milliSecPerFrame(20毫秒)。

Back to top

Crafty.timer.step()

public void Crafty.timer.step()

事件

EnterFrame [Data = { frame: Number, dt:Number }]
在每一帧上触发。传递帧号和自上次帧以来的时间量。如果时间大于 maxTimestep,将使用 maxTimestep 代替。(maxTimestep的默认值是50毫秒。)
ExitFrame [Data = { frame: Number, dt:Number }]
每个帧之后触发。传递帧号和自上次帧以来的时间量。如果时间大于 maxTimestep,将使用 maxTimestep 代替。(maxTimestep的默认值是50毫秒。)
PreRender
每次绘制场景前应立即触发。
RenderScene
每次绘制场景时触发。
PostRender
每次绘制场景后立即触发。
MeasureWaitTime [Data = {Number}]
在第一步之后的每一步开始时触发。传递游戏循环在两步之间的时间量。
MeasureFrameTime [Data = {Number}]
每个帧之后触发。传递前进一帧所需的时间。
MeasureRenderTime [Data = {Number}]
每次绘制场景后触发。传递绘制场景所需的时间

通过执行一个步骤来推进游戏。在一次绘制之后的一步包含一帧或多帧。帧数取决于定时器的 steptype.需要特别指出的是每次绘制都会在每一帧上触发 EnterFrame & ExitFramePreRender, RenderScene & PostRender 事件。

Back to top

Crafty.timer.steptype()

事件

NewSteptype [New steptype = { mode, maxTimeStep }]
当前的 steptype 改变时

这个方法可以用来设置游戏循环的时间步长。

public void Crafty.timer.steptype(mode [, maxTimeStep])
mode

时间循环的类型。允许的值是"fixed", "semifixed" 和 "variable"。Crafty默认为 "fixed"。

maxTimeStep

对于"fixed",设置每一步的最大帧数。"variable"和"semifixed",设置允许的最大时间步长。

这个方法可以用来获取游戏循环的时间步长。

public Object Crafty.timer.steptype(void)
[Returns]

对象包含当前事件步的属性{ mode, maxTimeStep }

  • 在 "fixed" 模式,每一帧发送 dt 值相同,以及实现目标的游戏速度,多帧事件将在每次渲染前触发。
  • 在 "variable" 模式,每次绘制只触发一帧。这个间隔事件 dt 等于最近一帧到当前帧的事件差。
  • 在 "semifixed" 模式,一次处理多帧,总时间为从最近一帧到当前时间除以帧数的平均值。

参见