7

我正在用 Irrlicht 编写一个类似最终幻想的游戏引擎,具有 2D 背景和 3D 模型。为了计算与背景中物体的碰撞,我使用了一个像这样的不可见网格:

在此处输入图像描述

我已经尝试过使用此代码,但是当玩家到达网格边缘时,它会掉下来:

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

1 回答 1

1

我没有使用您正在使用的系统,但是已经两天了,所以我想我会在黑暗中试一试。如果我没看错的话,听起来您正在使用预定义的系统和其中的网格。当玩家对象到达网格边缘时,它会从网格上掉下来,对吗?

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

我知道这不是一个确切的答案,但我希望这能得到一些想法。也许我很遥远,但这就是我从所提供的信息中想到的情况。

于 2013-04-26T22:28:26.177 回答