固定减速与按比例衰减的停止过程:十二拍的速度与累计距离·案例18
松开方向后,游戏物体可以每拍减掉固定速度,也可以每拍只保留一部分速度。二者都可能看起来在慢下来,但停止时刻与累计移动距离并不一样。
以下是一组可按记录复查的虚构游戏例子。它先固定输入、单位和执行顺序,再展示每一步结果。读者可以用纸笔挑出几步核对,不需要依赖具体游戏的后台数据。
明确规则与输入
一维物体从正速度开始,每拍先减速再移动。固定模式减去给定数值,低于零取零;比例模式乘一个介于零与一的分数。两种模式都从位置零开始,只模拟十二拍,没有另外设置停止阈值。
初速度29,每拍固定减3,另一模式保留2/3
完整计算过程
第1拍先减速后移动:固定模式速度26、位置26;比例模式速度58/3、位置58/3。两种位置均累计本拍更新后的速度,不先移动旧速度。
第2拍先减速后移动:固定模式速度23、位置49;比例模式速度116/9、位置290/9。两种位置均累计本拍更新后的速度,不先移动旧速度。
第3拍先减速后移动:固定模式速度20、位置69;比例模式速度232/27、位置1102/27。两种位置均累计本拍更新后的速度,不先移动旧速度。
第4拍先减速后移动:固定模式速度17、位置86;比例模式速度464/81、位置3770/81。两种位置均累计本拍更新后的速度,不先移动旧速度。
第5拍先减速后移动:固定模式速度14、位置100;比例模式速度928/243、位置12238/243。两种位置均累计本拍更新后的速度,不先移动旧速度。
第6拍先减速后移动:固定模式速度11、位置111;比例模式速度1856/729、位置38570/729。两种位置均累计本拍更新后的速度,不先移动旧速度。
第7拍先减速后移动:固定模式速度8、位置119;比例模式速度3712/2187、位置119422/2187。两种位置均累计本拍更新后的速度,不先移动旧速度。
第8拍先减速后移动:固定模式速度5、位置124;比例模式速度7424/6561、位置365690/6561。两种位置均累计本拍更新后的速度,不先移动旧速度。
第9拍先减速后移动:固定模式速度2、位置126;比例模式速度14848/19683、位置1111918/19683。两种位置均累计本拍更新后的速度,不先移动旧速度。
第10拍先减速后移动:固定模式速度0、位置126;比例模式速度29696/59049、位置3365450/59049。两种位置均累计本拍更新后的速度,不先移动旧速度。
第11拍先减速后移动:固定模式速度0、位置126;比例模式速度59392/177147、位置10155742/177147。两种位置均累计本拍更新后的速度,不先移动旧速度。
第12拍先减速后移动:固定模式速度0、位置126;比例模式速度118784/531441、位置30586010/531441。两种位置均累计本拍更新后的速度,不先移动旧速度。
十二拍后两位置分别为126与30586010/531441;固定模式可能已经停止,比例模式仍按精确分数衰减。
独立核对与边界
固定模式第几拍的速度等于初速度减该拍数乘减速量后取非负值。比例模式则等于初速度乘比例的相应次方。两种位置都应等于已使用速度之和,可以独立按闭式速度重新累计。
比例衰减在精确分数模型中不会突然变成零,真实程序可能另设小速度阈值。本例的拍是教学时间单位,不把这些规则当成现实摩擦定律。先更新位置再减速会得到另一条位置记录,需要明确说明顺序。
练习时只改变一个条件,先判断哪些中间步骤应当受影响,再重新计算。要把空状态、数值零和未能确定的结果分开。边界约定不同可能产生不同答案,复查的目标是确认输入、过程与规则一致,而不是只追求最后一个数字看起来相同。
