Drivers(驾驶员)
汽车的逻辑("Car"类)只由该汽车的物理和signals控制。 该逻辑也驾驶汽车所必须的全部功能。 任何汽车(用户控制的或AI控制的)都需要一个"驾驶员"来遵守交通规则。
为此,专门设置了一个被称为"Driver"的特殊基类。 每辆汽车都应拥有一个可被控制的该类的实例。
"Driver"类会执行如下操作:
- 搜索道路以及道路的通行方向。
- 对车道的数量进行求值。
- 对汽车正沿其运动的车道进行识别。
交叉路口的逻辑也能影响"Driver"类。 当驾驶员驶入交叉路口时(不管是不是用户控制的或是AI控制的驾驶员),它会接收交叉路口的行车曲线和行车优先值。 行车曲线由如下方式定义:
- 对于用户控制的汽车:基于激活的转向灯。
- 对于AI控制的汽车:随机选取。
所有的驾驶员都会根据这些行车曲线和行车优先值来做进一步移动的决定。 因此,"驾驶员们"的行为就像是他们在真实道路上行驶一样:他们会观察周围环境,查看其它汽车以及这些汽车的转向灯,也会注意停车信号,观察人行横道,让行人通行。
控制键
要想通过键盘控制汽车,可使用如下键盘按键:
通用
- A / 左箭头键 - 左转
- D / 右箭头键 - 右转
- Space - 刹车
- Shift - 手刹
- H - 开/关前车灯
- Q / Home - 开/关左转向灯
- E / PgUp - 开/关右转向灯
自动变速箱
- W / 向上箭头 - 前移就给油儿(后移就刹车)
- S / 向下箭头 -前移就刹车(后移就给油儿)
手动变速箱
- W / 向上箭头 - 给油儿
- S / 向下箭头 - 刹车
- J - 降档减速
- K - 提档加速
其它控制
- F - 启用自由飞行的摄像机
- G - 启用player摄像机
当然,也支持摇杆控制。 查看driver_player.h文件可了解如何实施它的逻辑。
最新更新: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)