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. 仿真物理環境中的移動模式
這部分主要是和仿真物理引擎打交道,比如:前進和移動的速度和最大速度,轉動的角度和最大角度,等等,移動模式的設置,需要考慮到仿真環境的情況。通過分析物理引擎的情況,給出若干條指令來完成一個模式,感覺和第一節中的情況很類似。