10-01 比较两套移动
题目
用同样一秒输入分别运行固定每帧位移和按 dt 位移,保留 30、60、144 帧的计算结果,解释速度单位。
推导与做法
固定每帧 4 像素时,一秒位移分别为 120、240、576 像素,速度随帧率变化。若速度规定为每秒 240 像素,每帧使用 240×dt,三种帧率一秒都约为 240。
计算中的微小小数误差来自浮点累计。程序先用这个独立计算确认单位,再把相同逻辑接进 World.step;渲染帧率不应成为游戏规则的一部分。
实现与运行
查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。
在配套目录的 Pygame与交互程序/dodge_project 中运行。先按项目 README 执行 uv sync --locked。
# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch10.py" 10-01
程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。
查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
[
{
"fps": 30,
"fixed_4_pixels": 120,
"speed_240": 240.0
},
{
"fps": 60,
"fixed_4_pixels": 240,
"speed_240": 240.0
},
{
"fps": 144,
"fixed_4_pixels": 576,
"speed_240": 240.0
}
]