现在,我们有一个偏航角(yaw),和移动速度(speed),需要计算在按下 WASD Space Shift 后的移动向量
以 JavaScript 为例
转换为弧度
在 JavaScript 中,三角函数使用的是弧度制而不是角度制
1 | const rad = yaw * (Math.PI / 180) |
读取输入
假设输入状态由 input 变量管理
1 | const moveF = input.up - input.down |
up: Wleft: Adown: Sright: Dabove: Spacebelow: Shift
处理水平零值
1 | if (moveF === 0 && moveS === 0) { |
水平归一化
防止斜向移动时速度为√2倍
1 | const mag = Math.sqrt(moveF * moveF + moveS * moveS) |
计算向量
1 | const cos = Math.cos(rad) |