Irrlicht与隐形网格碰撞

时间:2013-04-21 13:47:27

标签: c# collision-detection irrlicht

我正在编写一款类似最终幻想的游戏引擎,具有2D背景和带有Irrlicht的3D模型。 要计算与背景中对象的碰撞,我使用一个不可见的网格,如下所示:

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 个答案:

答案 0 :(得分:1)

我没有使用你正在使用的系统,但已经有两天了,所以我想在黑暗中进行拍摄。如果我正确地读到这个,听起来你正在使用预定义的系统和其中的网格。当玩家对象移动到网格的边缘时,它会从网格上掉下来,对吗?

听起来发生的事情是你正在使用的引擎具有一种重力,并且如果存在,则该网格位于底层之上。把网想象成一座桥;如果你离开边缘就会掉下来。您可能想要做的是沿着网格边缘设置墙壁以防止玩家从桥上掉下来,或者如果引擎允许,则在网格上设置碰撞以防止玩家越过边缘。后者将是一个更好的主意,因为我认为你会想要敌人和NPC遵循这些相同的路径和墙壁只是更多的碰撞检测(并可能妨碍飞行的敌人)。

我知道这不是一个确切的答案,但我希望这会得到一些想法。也许我已经离开了,但这正是我所想的从所提供的信息中得到的。