我正在尝试检查节点是否位于另一个节点中:例如,正在移动的大矩形中的气球。如果气球不再在矩形中,我希望气球消失。
我尝试过使用did begin contact函数,但它不起作用。
感谢您的帮助
答案 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)
现在让我们考虑一下这个场景
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