NO IMAGE

你好每個人!暑假足夠長嗎?你喜歡任何相關的電子遊戲或動畫系列嗎?請告訴我!

在這裡,夏天充滿了美好的經歷。我們與我們的魔獸世界公會組織了另一次會議,和往常一樣有趣!我也加入了我的家人幾天,這是重要的,因為他們住500公里。離我遠點。

回到工作中,我開始玩  gdxAI,所以今天我會談論  人工智慧!聽起來不好聽嗎:)

我建議您 在繼續閱讀之前從github下載程式碼  。

指數

  1. 關於gdxAI
  2. 轉向行為Steering
    Behavior
  3. 實施:到達Implementation:
    Arrive

    • 定義
    • 建築
    • 具體實施
  4. 結論


關於gdxAI

直接來自維基

gdxAI我是一個完全用Java編寫的人造智慧框架,用於使用libGDX進行遊戲開發。

從我的角度來看,這個框架的最重要的特徵是:

– 運動AIMovement
AI
):提供不同的方式來實現人物的運動。它包括“指導行為”,我將在今天的練習中使用。

– 尋路Pathfinding):允許人物以獨立的方式跨越迷宮。

– 決策Decision
Making
):機器的“大腦”。我發現非常有趣的“行為樹”如何工作。我還不知道他們,這是一個發現!

今天我只會介紹gdxAI和“指導行為”概念,並向您展示我如何使用“到達策略”。在隨後的帖子中,我想解釋追求戰略和探路,因為我有一些想法來應用它們。

繼續 閱讀本文之前,我強烈建議您仔細閱讀維基


2.指導/轉向行為(Steering
behavior)

雖然  這裡是一個更好和完整的定義,我想用自己的話解釋他們:

轉向行為是一組演算法,允許角色根據策略以不同的方式移動到環境中。

所以,例如,跟隨你的怪物,當你走近他時,使用  追求的(pursuing)策略。當你跑出他的範圍之外,他會走回到他困擾他之前的地步,僱用一個到達的(arriving )策略。一旦他在那裡,他將實行一個漫遊的(wandering )戰略,這將使他在一個範圍內隨機移動。

戰略也可以結合起來,例如,敵人可以追趕(pursuing )你,同時逃避(evading )地牢的牆壁。


實施:到達(Arrive)

PA:要使用它,您需要從Maven匯入gdx-ai:1.5.0模組,並將您的LibGDX庫更新到最後一個版本

  • 定義

到達行為將代理人移動到目標位置。目標是說,“包圍”有兩個圓形區域:抵達容限和減速半徑。抵達寬容是代理人到達目標地區。減速半徑是代理人開始減速的區域。當進入到達容差區域時,代理的速度應為0。

半徑

是課程的完整描述。

  • 建築

從現在起,所有易受有針對性或需要一個AI必須實現字元  可控。重要的是要強調指導者並不意味著智慧。一個PC 可以是可控的,但他的動作會被玩家的輸入來定義。然而,一名暴徒將“決定”哪裡去。在下圖中(點選放大),您將能夠在架構級別中看到如何實施Steerable:

20151021_171825

因此,PC將通過AbstractMob實施Steerable; 和mobs,通過Automaton。是的,間接使我感到好惡心。:)

  • 具體實施

你可以在這裡找到完整的版本。

現在我們來關注實體。在以前版本的程式碼中,我使用Box2D進行物理模擬。被拖的小貓被給了一個速度和角度,使他移動。航點是 當小貓達到範圍時發起了一個onCollide事件的感測器。這個事件處理了小貓停止,使其速度為0。

很難,很難,而且很酷。現在它不再存在了。其實我擺脫了整個  PhysicalObjectsFactory。我不再使用Box2D了(現在)。

現在一切都是用行為來處理的。小貓將繼續服從“到達可行的行動”。以前,當航路點移動時,我們不得不通知小貓改變。但這不是必需的。無論發生什麼事情,小貓都會嘗試到達航點的位置。如果你移動路點,小貓會自動跟隨它。

而我們只需要幾行程式碼來使這個工作:

看到?小貓擴充套件了 架構點描述的Automaton類。

在建構函式中,它呼叫setBehavior方法,該方法建立了Arrive行為,並將小貓繫結到路點:

然後設定到達容差和減速半徑區域:

最後將這個行為分配給小貓:

現在改變航點的位置會自動使小貓向前移動:

只有一個好的方法來測試它…玩吧!


結論

嗯,我想這是完成這個職位的好時機,雖然還有一些其他想法,我已經開始工作了(如果你深入看看程式碼,你可能會發現一些草圖)。但我不希望我的帖子太長。

正如我所說,在接下來的更新中,我將實現尋路和追求行為,意思是…我們將很快就會有怪物!通過觀察者的眼睛,當我使用框架和架構時,它看起來並不像任何事情發生變化,因為程式碼可能已經發生了根本改變,但功能仍然是一樣的。所以我願意在場景中插入一些新的演員。

我也從事遊戲設計。您可能會注意到,當您將游標放在它們上時,小貓站起來。所有AI主題完成後,我會解釋一下。

最後,我想表示道歉,因為我意識到我將我的舊帖子連結到github上的最新版本的程式碼,而不是具體的提交版本。我現在正在修復所有的藍色連結,如果您可以報告任何可能遇到的錯誤連結,我將非常感激。

好,謝謝閱讀!如果您認為我值得擁有,請喜歡,分享和訂閱!

圖片

原文出處:http://fightingkitten.webcindario.com/?p=302