1. 标准算法
移动模式,实际上就是控制角色移动的方式。比如:可以建立圆形、方形、蛇形、曲线以及其他类型的模式。
标准移动模式算法使用控制指令,指示计算机控制的角色,在每一轮游戏循环中如何移动。
下以一个蛇形的移动模式为例,进行说明:
下面就是一组控制指令 :
(turn_right, turn_left, step_forward, step_backward)
(0, 0, 2, 0)
(0, 0, 2, 0)
(10, 0, 0, 0)
(10, 0, 0, 0)
(0, 0, 2, 0)
(0, 0, 2, 0)
(0, 10, 0, 0)
有了上面这些控制指令,只有重复依次调用这些指令,就能让角色进行蛇形移动了。
准备多个模式,选择使用可以让角色更加智能。
2. 砖块环境中的移动模式
对于砖块环境,可以指定一系列要移动到的点的相对位置(相对于起始点)。
比如一个方形的移动模式可以表示为:
(10, 3, 18, 3)
(18, 3, 18, 12)
(18, 12, 10, 12)
(10, 12, 10, 3)
对于这四个点,就能得到要移动的四条线段,然后利用第二章中的视线移动方法,算出这四条线段的路径,通过这些路径就能很好的控制角色的移动了。书中给出了具体使用Bresenham进行计算移动模式路径的实际代码。
有的时候希望角色的移动更加难以预测,以方形移动模式为例,要么顺时针移动,要么逆时针移动,这太容易被玩家发现了,可以建立一个数组,将所有可以移动到的位置置为1,其他置为0,这样,每走到一个位置时,随即选择可以走的位置,这样就可能顺时针走几下就回头了。还可以更加精细控制,比如:限制只能在拐角处,作出随即选择,或者玩家角色和控制角色在一条直线时(认为此时角色可能看到玩家角色了),向玩家角色的方向移动等等。
3. 仿真物理环境中的移动模式
这部分主要是和仿真物理引擎打交道,比如:前进和移动的速度和最大速度,转动的角度和最大角度,等等,移动模式的设置,需要考虑到仿真环境的情况。通过分析物理引擎的情况,给出若干条指令来完成一个模式,感觉和第一节中的情况很类似。