不使用游戏引擎如何通过鼠标移动计算2D物体的速度
核心实现思路
- 剔除无效静止时段:预先设定最小位移阈值(通常取1~2px),相邻采样帧的鼠标位移低于该阈值时,该段时长和对应的位移都不纳入速度统计的有效范围,仅累计有效位移和对应的有效时长,最终速度为有效总位移除以有效总时长,排除静止时段拉低平均速度的问题。
- 采用近时段滑动窗口计算:不用统计整个拖拽周期的所有数据,仅取拖拽结束前极短时间窗口内(通常取50200ms,或者最近35个有效采样帧)的位移和时长计算平均速度,更贴合用户拖拽释放瞬间的真实操作意图,避免前期的静止、慢速移动操作影响最终释放速度。
- 可选异常值过滤:如果滑动窗口内采样到的瞬时速度和其他采样值差值超过预设阈值,可以判定为鼠标抖动或误触,将异常值剔除后再做平均计算,提升结果稳定性。
内容的提问来源于stack exchange,提问作者avighnac
相关产品推荐
相关产品推荐

