我正在尝试解决与我的之前的 Godot Engine 问题相同的问题。我数学很差,所以如果你有耐心的话......!我重新要求更清楚。
我想要一辆自上而下的汽车,只需按箭头键即可漂移,你也可以将它们组合起来以保持悬挂在漂移上。
我像这样对我的车施加力
self.apply_central_force(self.accel_force * Drift.force(self.rotation_degrees, self.dir))
我只需要正确编写这个
Drift.force
函数,但我很难找到解决方案:
class_name Drift
static func force(from_angle: float, to_dir: CarDirection) -> Vector2:
var to_dir_angle := to_dir.angle
var angle_delta := Angle.min_delta(from_angle, to_dir_angle)
var x: float = 0
var y: float = 0
match to_dir:
CarDirection.UP:
x = 0
y = -1
for _j in range(0, angle_delta):
# ...
return Vector2()
期望: 例如,如果汽车已经面向北并加速向北,那么
Drift.force()
应该返回(0, -1)。如果汽车的角度不是完全朝北,则意味着它可能正在漂移,即Drift.force()
。