如何检查节点的位置是否包含在另一个节点中?

时间:2016-02-25 18:10:42

标签: ios swift location sknode

我正在尝试检查节点是否位于另一个节点中:例如,正在移动的大矩形中的气球。如果气球不再在矩形中,我希望气球消失。

我尝试过使用did begin contact函数,但它不起作用。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

鉴于2 SKSpriteNode(s)相同的父级

let spriteA = SKSpriteNode()
let spriteB = SKSpriteNode()

let parent = SKNode()
parent.addChild(spriteA)
parent.addChild(spriteB)

我们可以使用此行检查position的{​​{1}}点是否在spriteA的框架(边界框)内

spriteB

交叉口

或者我们也可以检查精灵的边界框之间的交叉点

CGRectContainsPoint(spriteB.frame, spriteA.position)

当spriteA和spriteB没有相同的父

现在让我们考虑一下这个场景

CGRectIntersectsRect(spriteA.frame, spriteB.frame)

要检查let spriteA = SKSpriteNode() let spriteB = SKSpriteNode() let scene = SKScene() let parent = SKNode() scene.addChild(spriteA) scene.addChild(parent) parent.addChild(spriteB) 是否在spriteA.position内,首先我们必须将spriteB.frame转换为spriteA.position坐标系。

spriteB

现在我们可以调用let spriteAPositionWithSpriteBCoordindates = spriteA.convertPoint(spriteA.position, toNode: spriteB) 函数

CGRectContainsPoint