gpt4 book ai didi

ios - 防止节点离开边界

转载 作者:行者123 更新时间:2023-11-29 12:03:53 24 4
gpt4 key购买 nike

我正在使用 GameplayKit 在给定的 map 边界(比如说一个 1000x1000 的矩形)中围绕障碍物创建路径。

我知道你可以让某些节点在寻路时避开“障碍物”,我用得很好。然而我很好奇的是:

  • 有没有一种方法可以使用相同的逻辑并将 map 边界内的任何东西都算作“障碍物”?

解决方法是创建 2 个 SKNode 并将它们组合在一起以创建一个变成 1000x1000 的内部“孔”,但如果有更好的方法,我会尽量避免不必要地添加节点方式。下面我展示了我能做什么。

理想情况下我想让红色和黑色区域被视为障碍物,这样所有路径都主广场内。

enter image description here

更新:正如我已经说过的,我正在使用 GameplayKit,寻路算法无法将给定物理体中未包含的区域视为障碍。它只能将障碍物计算为位于区域内的闭合多边形。如上所示创建 2 个节点是可行的,因为寻路现在无法创建位于绿色矩形外部的任何点。

最佳答案

让你的游戏像这样分层

Scene
SKNode topshape
SKNode bottomshape
SKNode innerbox <-- This is the size of your inner square
SKNode gamenodes <-- Place all inner nodes here
...

然后使用 innerbox 大小的边缘循环矩形将 SKPhysicsBody 附加到 innerbox SKNode 并使其成为墙类别,这将使您的所有节点都在里面,前提是您的节点不会以破坏引擎的疯狂速度移动。

您将添加 1 个额外的节点而不是 2 个(从技术上讲,您可以使 bottomshape 和 topshape 成为 1 个节点,使其添加 0 个节点),但是所有处理都将在内部节点内完成,因此不会增加太多开销。

关于ios - 防止节点离开边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com