我实施了一个非常基本的汽车运动系统:
_velocity.x = Math.cos(angleAsRadians) * _speed;
_velocity.y = Math.sin(angleAsRadians) * _speed;
_position.x += _velocity.x;
_position.y += _velocity.y;
通过增加/减少速度来移动,然后通过增大/减小角度来转动。
我怎样才能添加漂移,以便我走得越快,在转弯时,我越漂移?我无法理解,除了其他谷歌能源之外,其他地方都没有。
想法?
答案 0 :(得分:2)
汽车物理有点棘手。你需要的是实现一个基于滑动的物理引擎。
This article相当好地解释了这个过程。为了使其正常工作,需要考虑车轮的旋转以及当轮胎单向行驶且地面朝另一个方向行驶时的力差。结果是两个力,一个垂直于车轮轴线,一个侧面相对于汽车。
当然,这是很多的工作,当做任何与游戏相关的事情时,一般规则是如果它看起来不错那么。因此,人们可以从实际物理学的完成方式中获得一些里程和想法,并采取适当的解决方案的一些点点滴滴,以创建一个可信的真实交易的传真。
答案 1 :(得分:0)
决定一个“漂移系数”,就像速度乘以时间的0.5%的距离。
_position.x += (1+coeff)*_velocity.x; -> _position.x += (1+0.005)*_velocity.x;
_position.x += (1+coeff)*_velocity.y; -> _position.y += (1+0.005)*_velocity.y;
所以在这种情况下它是附加的,并且基于速度。
此系数也可以根据轨道半径,任何竞赛时间条件(光滑等),x和y轴之间的差异以及随机化为正或负的变化而变化。