我已經寫了與遊戲製作遊戲,但希望使用ActionScript 3易AI尋路圖書館
在遊戲製作這是簡單的有一個角色實例尋找最接近的敵人,轉而寫一個Flash遊戲,移動朝向它 - 遊戲引擎照顧到困難的東西。
我在業餘時間爲了娛樂而進行遊戲開發,並且不希望成爲A *尋路算法的專家。我只是想是這樣的:
mob.MoveToClosestEnemy();
我是不是要求太多或者是有沒有提供這樣的事情一個圖書館嗎?
我已經寫了與遊戲製作遊戲,但希望使用ActionScript 3易AI尋路圖書館
在遊戲製作這是簡單的有一個角色實例尋找最接近的敵人,轉而寫一個Flash遊戲,移動朝向它 - 遊戲引擎照顧到困難的東西。
我在業餘時間爲了娛樂而進行遊戲開發,並且不希望成爲A *尋路算法的專家。我只是想是這樣的:
mob.MoveToClosestEnemy();
我是不是要求太多或者是有沒有提供這樣的事情一個圖書館嗎?
沒有內置的AS3庫來處理路徑查找的每個方面,因此您的選擇是通過谷歌尋找第三方庫並使用它或編寫自己的A *算法。
如果你想編寫自己的,這是一個非常不錯的介紹與一個偉大的動畫例子尋路: http://www.emanueleferonato.com/2012/11/26/the-basics-of-pathfinding-animated-example/
注:這不是一個簡單的技術,你會使用AS3充分了解需要相關經驗這一切。
我寫了Daedalus Lib,一個基於delaunay三角剖分的完整的開源AS3尋路庫。您可以輕鬆構建一個環境(甚至可以使用位圖),請求路徑查找,樣本路徑......它完全動態,準確和快速。
你可以在這裏看到演示: http://totologic.blogspot.fr/2013/12/introducing-daedalus-lib_19.html
下載源和wiki: https://code.google.com/p/daedalus-lib/
享受!
編輯後:
第一件事。而Game Maker則是一款專注於一項任務(製作遊戲)的工具,而Flash則是一種更通用的平臺;你可以開發遊戲,但也可以應用程序
這不僅僅意味着在Flash中,你有兩個選擇:
1 - 你選擇一個完整的遊戲引擎庫,將實現顯示,物理學,控制...(也許尋路)。這樣的庫存在(Flixel,Flashpunk ...),你只需要檢查它們的特徵,並選擇更適合你的需求。
2:你建立你自己的遊戲引擎。這並不意味着你必須從頭開始編寫所有代碼。你可以編寫許多專用於單個任務的庫,例如用於2D顯示的Starling,用於3D顯示的Away3D,用於物理的Box2D ......這更加困難,因爲您必須瞭解圖書館中的基本概念,並具有遊戲體系結構,但這種方法更加強大和靈活。
因此,Daedalus Lib致力於爲第二種方法工作的人員。它被設計成您自己的遊戲引擎的組件;例如,您可以將它與Box2D和Starling結合使用。
從開始,我設計代達羅斯很容易,同時保持靈活。
例如,你可以簡單地通過使用位圖的注入你的水平設計轉換成代達羅斯庫,這樣的:
var myLevel:DDLSMesh;
myLevel = DDLSBitmapMeshFactory.buildFromBmpData(myBitmap.bitmapData);
然後定義實體,將發揮你的暴徒的角色:
var myMob:DDLSEntityAI = new DDLSEntityAI();
myMob.radius = 5;
myMob.x = 132; // current x
myMob.y = 224; // current y
最後問一個路徑爲你的暴徒你的水平內:
var path:Vector.<Number> = new Vector.<Number>();
var myPathfinder:DDLSPathFinder = new DDLSPathFinder();
myPathfinder.entity = myMob;
myPathfinder.mesh = myLevel;
myPathfinder.findPath(yourGoalX, yourGoalY, path);
AFTE您的變量路徑將包含生成的路徑的座標,以便您的暴徒達到目標,避免與您在位圖中定義的級別發生衝突。 您可以通過enterFrame直接在MovieClip上使用這些座標,讓您的怪物在屏幕上移動,或者在物理模擬中使用它來改變物體的速度。
而不是堵住你的圖書館,留下它,一個很好的答案會證明(與代碼,在這個相同的答案)如何解決原來的問題。 **僅將鏈接到相關材料**的答案在SO上不鼓勵。 – 2015-02-12 03:42:42
請求是「有沒有提供這樣的事情的圖書館?」。這不是對代碼抽樣的請求。 所以我通過提供代碼源和文檔的直接鏈接回答。 但是,如果您有任何問題可以用代碼回答,您可以詢問:) – Logic 2015-02-12 04:01:19
@Logic是的,但請注意,2013年的這個問題不再符合當前的SO質量指南;具體而言,尋求圖書館,參考資料,教程等的問題現在被視爲**偏離主題**。你的回答適合這個問題,但問題不再合適。 SO標準的答案目前不鼓勵新的答案(不管問題)從簡單地鏈接到外部內容而沒有在答案中總結內容。 – 2015-02-12 04:12:16