SpriteKit:计算两个纹理蒙版之间的距离

时间:2016-12-28 01:08:26

标签: sprite-kit distance skspritenode

我在SpriteKit中有两个不规则的形状,我想计算一个太空船底部和右下方(不规则)地形的垂直距离。

有办法吗? 谢谢 ! enter image description here

2 个答案:

答案 0 :(得分:2)

将一个SKPhysicsBody放置在船舶中心的一条线上,宽度为1,场景高度,然后在didBeginContact方法中抓住2个接触点。你现在知道2分,只需使用距离公式(在这种情况下它只是y2-y1)并且你有答案

答案 1 :(得分:0)

我找到了一种不同的方法来解决我的问题,但我认为KnightOfDragon的概念更好(虽然我没有设法让它工作)。

地形的纹理本质上是一个具有不透明和透明像素的位图。所以我决定解析这些像素,为每列存储最高的不透明像素,构建一个“雷达高度图”。所以我只需要计算船底和中心正下方柱的高度之间的差异:

B2

当然,可以优化此解决方案。这只是基本的想法。

我添加了一个图像来显示原始纹理,它表示为不透明/透明像素,并通过放置小白色节点来检查“表面”的位置进行测试。 enter image description here