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
& ExitFrame
和 PreRender
, 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" 模式,一次处理多帧,总时间为从最近一帧到当前时间除以帧数的平均值。