在我的游戏中使用弧线来表示角色的视觉,但无法将弧线环绕在墙壁周围

Using arcs to represent the vision of characters in my game, having trouble wrapping arc around walls

现在,我的游戏只是通过墙壁绘制角色的视锥。我希望弧线在到达墙壁时被打断,但在它没有到达墙壁的地方继续。

这是我想要发生的事情的快速 example

我对编程还很陌生,我已经编程了大约 6 个月,但我的数学能力很强,所以请简单介绍编程术语,谢谢。

这是我的 GitHub 如果你想更好地感受我的游戏。

您可以计算出您的角色在任何给定方向上可以看到多远,方法是从角色向该方向投射光线并在碰到障碍物时停止。如何针对您的特定情况执行此操作的详细信息将根据对象在您的游戏中的表示方式而有所不同。

在您 link 的文章中,看起来墙壁是由线条构成的。如果您的游戏属于这种情况,您可以找到一条射线与墙的每条线段的交点。如果它们相交,那么它们相交的点就是你在那个方向能看到的最远的点。

相反,如果您在给定位置将对象表示为 sprite,则可以先投射光线并查看它是否与 sprite 的边界框相交。 (边界框只是围绕精灵的一个矩形,它尽可能紧密地完全包含它。)一旦你知道你的光线与边界框相交,你可以更仔细地观察那个对象,看看是否 ray actually hits the sprite