将一个SKPhysicsBody放置在船舶中心的一条线上,宽度为1,场景高度,然后在didBeginContact方法中抓住2个接触点。你现在知道2分,只需使用距离公式(在这种情况下它只是y2-y1)并且你有答案
我找到了一种不同的方法来解决我的问题,但我认为KnightOfDragon的概念更好(虽然我没有设法让它工作)。
地形的纹理本质上是一个具有不透明和透明像素的位图。所以我决定解析这些像素,为每列存储最高的不透明像素,构建一个“雷达高度图”。所以我只需要计算船底和中心正下方柱的高度之间的差异:
B2
当然,可以优化此解决方案。这只是基本的想法。
我添加了一个图像来显示原始纹理,它表示为不透明/透明像素,并通过放置小白色节点来检查“表面”的位置进行测试。