赛车游戏算法笔记

英文原版教程: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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值