礼拜一-礼拜五:09.00 早上-06.00 下午

新闻中心

游戏知识实验课:回放外推为何要设置最长预测时间——两帧快照与3拍外推上限(练习16)

2026-10-31

只拿到最近两份位置快照时,可以沿最近速度短暂预测当前位置。时间越久,方向和速度不变的假设越难成立,因此例子给外推设置明确上限。

本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。

规则与输入

两份快照时刻递增,位置是二维整数。以两点间平均速度作恒速外推;查询都不早于最新快照,超过外推上限后停在上限时刻的预测位置,不继续远走。结果用精确分数保留。

快照(2,[2, -5])和(4,[-8, 4]),预测上限3 [4, 7, 8, 10, 16, 4, 16, 10, 11, 13, 11, 9, 11]

逐步推演

查询时刻4,距最新快照0拍,实际预测0拍,速度['-5', '9/2'],预测位置['-8', '4'];处于允许预测范围。

查询时刻7,距最新快照3拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];处于允许预测范围。

查询时刻8,距最新快照4拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻10,距最新快照6拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻16,距最新快照12拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻4,距最新快照0拍,实际预测0拍,速度['-5', '9/2'],预测位置['-8', '4'];处于允许预测范围。

查询时刻16,距最新快照12拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻10,距最新快照6拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻11,距最新快照7拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻13,距最新快照9拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻11,距最新快照7拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻9,距最新快照5拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

查询时刻11,距最新快照7拍,实际预测3拍,速度['-5', '9/2'],预测位置['-23', '35/2'];已限制继续外推。

超过外推上限的查询全部停在同一预测端点,不能当作继续收到新位置。

怎样独立检查

先求最新时刻到查询时刻的有效预测时长,不能超过规定上限;再分别核对两轴的位移是否为速度乘这段时长。多个超出上限的查询应得到相同位置。

外推结果是基于假设的估计,不是实际收到的新位置。角色若中途转向,预测会产生误差;上限只限制偏移继续累积,并不保证估计正确。本例没有处理新快照到来后的校正或画面平滑。

练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。