【发布时间】:2016-02-25 18:10:42
【问题描述】:
我正在尝试检查一个节点是否位于另一个节点中:例如一个正在移动的大矩形中的气球。如果气球不再在矩形中,我希望气球消失。
我尝试过使用 did begin 联系功能,但它不起作用。
感谢您的帮助
【问题讨论】:
我正在尝试检查一个节点是否位于另一个节点中:例如一个正在移动的大矩形中的气球。如果气球不再在矩形中,我希望气球消失。
我尝试过使用 did begin 联系功能,但它不起作用。
感谢您的帮助
【问题讨论】:
给定 2 个SKSpriteNode(s) 与同一个父级
let spriteA = SKSpriteNode()
let spriteB = SKSpriteNode()
let parent = SKNode()
parent.addChild(spriteA)
parent.addChild(spriteB)
我们可以用这条线检查spriteA的position点是否在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函数
CGRectContainsPoint(spriteB.frame, spriteAPositionWithSpriteBCoordindates)
【讨论】: