NPC簡單AI處理

2021-09-30 03:48:57 字數 1619 閱讀 1739

以前曾做過乙個arpg

遊戲,相應用到了npc尋路與攻擊多種狀態等。

一般的npc移動時就是通過不停檢測與英雄是否產生了碰撞,否則就獲得英雄的座標,再進行分x或y的方向行走。當然這只是用於地圖沒有任何障礙物上。

public boolean isramwithhero()

return false;

}public boolean ismovex() else if (hero.x - x >= steplength)

return false;

}public boolean ismovey() else if (y - hero.y >= steplength)

return false;

}public void seekwalk() else

} else

} else }}

}當乙個npc有了尋找英雄的功能後,就要有攻擊英雄的技能,但是考慮乙個問題的是,只按x或y這兩個方向做移動的話,那當npc有一定數量後,就會產生重疊的現象,而為了做得太真實一點,所以就在npc攻擊英雄時產生乙個機率,讓npc由英雄的正方向走到其左邊或者右邊,進行圍攻。

public void dealattack() else if (counter == 1)    

rolestate = rs_dealmove;

break;

case ms_left:

case ms_right:

if (counter == 0) else if (counter == 1)    

rolestate = rs_dealmove;

break;

}counter = 0;

dealmove();

}public void dealmove() else }}

public void dealmoveup() else if (counter < 16) else if (hero.x - x >= steplength) else

} else

}public void dealmovedown() else if (counter < 16) else if (hero.x - x >= steplength) else

} else

}public void dealmoveleft() else if (counter < 16) else if (hero.y - y >= steplength) else

} else

}public void dealmoveright() else if (counter < 16) else if (hero.y - y >= steplength) else

} else

}這是我整理出來的部分**,當中為了清晰還做了裁剪,但是已能表達原意,其體思路還是清晰的。

本人一直致力於ai與圖形優化,即時等研究與開發。常常對於自己說的aiai悲哀悲哀,做研究這一路很是鬱悶與痛苦的,但是其結果卻是那樣的振備人心,當到螢幕上那個按著你的意思你的規矩進行相應的動作,會有無限的歡喜,因為會感覺,他們的生命是我的給予。呵呵,ai一路,可說是一門技術,願與志同道合者一起研究學習。

[** j2megame的hubluesky會員]

NPC簡單AI處理

以前曾做過乙個arpg遊戲,相應用到了npc尋路與攻擊多種狀態等。一般的npc移動時就是通過不停檢測與英雄是否產生了碰撞,否則就獲得英雄的座標,再進行分x或y的方向行走。當然這只是用於地圖沒有任何障礙物上。public boolean isramwithhero return false publi...

AI,如何實現NPC的聽覺

npc 非人類角色 的聽覺是指npc對於身邊聲音環境的感知,比如你從背後接近npc,如果不收斂腳步聲,他就會發現你的行動,那麼你將無法刺殺他。對於實現聽覺系統,可以考慮如下一些因素 a 障礙物是否會減弱聲音的傳輸,如牆體或樹木是否會阻礙聲音的傳播 b 聲音傳輸距離與聲音衰減的關係,是否衰減,如果衰減...

AI專業簡單筆記

進入目錄 cdcd 返回上一層 cd 返回到上次的目錄 cd 快速回到家目錄 檢視目錄列表 lsls a 檢視隱藏檔案 ls l 檢視檔案的詳細資訊 ls lh 把大小轉成具體的數值 新建資料夾 mkdir 新建檔案 touch 刪除檔案 rm 刪除資料夾 rm r 分屏顯示 more 重定向 覆蓋...