2013-04-21 59 views
7

我正在寫一個類似於最終幻想的遊戲引擎,帶有Irrlicht的2D背景和3D模型。 計算與物體碰撞的背景我用一個無形的網這樣的:Irrlicht與一個看不見的網格碰撞

enter image description here

我曾嘗試與此代碼,但是當玩家達到網格的邊緣摔倒:

TriangleSelector sel = device.SceneManager.CreateTriangleSelector(Program.field.currentScene.walkmeshLoaded, null); 
CollisionResponseSceneNodeAnimator coll = device.SceneManager.CreateCollisionResponseAnimator(sel, playerNode); 
playerNode.AddAnimator(coll); 
coll.Drop(); 
sel.Drop(); 

回答

1

我還沒有使用過你使用的系統,但已經兩天了,所以我想在黑暗中拍攝一張照片。如果我正確閱讀它,聽起來好像你正在使用一個預定義的系統和一個網格。當選手對象進入網格的邊緣時,它會從網格上脫落,對嗎?

它聽起來像是在發生的事情是,你正在使用的引擎具有一種排序的重力,如果有一個網格是在底層以上。像網橋那樣考慮網格;如果你走下邊緣,你會脫落。你可能想要做的是在網格邊緣設置牆壁以防止玩家從橋上掉下來,或者如果引擎允許的話,可以在網格上設置防止玩家越過邊緣的碰撞。後者將是一個更好的主意,因爲我認爲你會想要敵人和NPC遵循這些相同的路徑,牆壁只是更多的碰撞檢測(並可能妨礙飛行的敵人)。

我知道這不是一個確切的答案,但我希望這會得到一些想法。也許我走了,但這正是我所想的從所提供的信息。