您的位置:首页 > 其它

赛车游戏算法笔记

2013-02-16 11:28 155 查看
英文原版教程:http://www.gotow.net/andrew/wordpress/?page_id=78

通过对赛车模型添加rigidbody,boxcollider和WheelColliders;对赛道添加Mesh Collider,使得游戏对象具备一般的赛车物理特性。

赛车引擎输出功率设为固定值,每个档位对应不同的损耗。

轮胎的转动力矩=引擎/档位有效比*用户输入的方向(1向前,-1向后。1到-1区间与按键时间有关)。

轮胎的转动角度=固定值(10)*用户输入的方向(1向右转,-1向左转。1到-1区间与按键时间有关)。

引擎转数=(左轮的转数+右轮转数)/2*档位有效比。

如果引擎转数超过设定最大值,就提高引擎有效比,升一档。

如果引擎转数小于设定最小值,就降低引擎有效比,降一档。

根据车的速度给车添加一个变动的阻力,车速越快,阻力越大,这样车就不会匀加速上升。

这时车转弯时,会很容易翻转,把车的重心设低点就可以了。Y值设得-15。

 

关于车轮。如果车轮碰到地面。车轮位置就是碰撞位置上移半径。不然就是车轮当前中心位置下移悬挂距离。相当于车轮上有一个弹簧,触地时压缩,不然就伸展。

如果侧滑了,就打印轮胎印。

关于AI,设置一系列轨迹点,计算轨迹点与当前位置的平面距离。如果距离过小就忽略它(表示过了一个路径点)。不然就转动方向,穿过它。经过测试,这样做比较合适。

转动角度=10*(x/模)

输入力矩=z/模-abs(x/模)。

由于路径是采用waypoint方式,所以很车辆ai容易发生碰撞,解决办法是:微调车辆起始位置,waypoint位置,和ai算法。

我写的一个demo:http://download.csdn.net/detail/cloud95/5232097
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: