AI也就是『人工智能』在遊戲中實現多數使用『狀態機』.通過定義大量狀態.然後通過條件判斷而切換當前狀態.從而實現對外界作出反應. 當『怪物』它會觀察四周.當你接近它時會另轉面走開.
首先定義下面幾個狀態
#define AI_IDLE 0 // 站立
#define AI_RUN 1 // 奔跑
#define AI_DEATH 3// 死亡
初此AI狀態變量設為站立
int ai = AI_IDLE;
『狀態機』判斷結構
if (ai == AI_IDLE) // 站立
{
}
else
if (ai == AI_RUN)// 奔跑
{
}
else
if (ai == AI_DEATH)// 死亡
{
}
站立轉身走開AI代碼
1.首先計算兩者距離
VECTOR3D distance = pos – player.pos;
length = Length_VECTOR3D(&distance);
2.計算『怪物』與『玩加』 矢量之間夾角
Normalize_VECTOR3D(&distance);// 長度歸一
VECTOR3D v;
Init_VECTOR3D(&v, 0, 0, -1);
angle = RAD_TO_DEG(Angle_VECTOR3D(&distance, &v0));// 角度
2.若距離小於10米則會轉身離開
if (length < 10 ){
ai = AI_RUN;// 奔跑
rot.y = (angle – 90) + ((rand() % 90) – 45);// 轉身走開.有45度隨機角度
}