此函数设置用于渲染游戏的计时方法。
该方法可以是以下常量之一:
显示计时方法常量 | |
---|---|
常量 | 描述 |
tm_sleep | The sleep margin value is the main timing method |
tm_countvsyncs | Vsync timing is the main timing method (default for all supported platforms) |
tm_systemtiming | System timing is the main timing method |
vsync 计时方法利用目标平台对垂直同步的支持来为游戏的渲染计时计算提供锚点,而将模式设置为睡眠余量只会尝试确保每一帧持续正确的时间量 (例如 1/30) 或 1/60 秒) 通过等待或睡眠。一般来说,默认的垂直同步计时将给出最平滑的结果,但请注意,当使用垂直同步方法时,睡眠裕度值仍然相关,尽管它会减少影响,我们建议在使用此方法时将其保留为默认值。
默认情况下,在除 PS4、Ubuntu 和 HTML5 之外的所有平台上,GameMaker 将使用 vsync 计时方法,而在不支持的平台上,只能使用 sleep margin 计时。
某些 Android 设备使用特定的帧速率。在这些设备上运行时,您可能需要使用系统计时方法。此方法删除了 GameMaker 的所有睡眠和游戏速度控制,并允许系统设置游戏速度。
如果您希望设置睡眠余量,可以使用函数 display_set_sleep_margin 进行设置,并且您可以通过函数 display_get_timing_method 查找当前使用的计时方法。
display_set_timing_method(method);
参数 | 类型 | 描述 |
---|---|---|
method | 显示计时方法常量 | 要使用的计时方法(参见上面的常量列表) |
N/A
if (display_get_timing_method() != tm_sleep)
{
display_set_timing_method(tm_sleep);
if (display_get_sleep_margin() != 20)
{
display_set_sleep_margin(20);
}
}
上述代码将检查计时方法,如果未设置为 tm_sleep,则会将其设置为该值,并将睡眠裕度设置为 20。