我试图检查一个节点是否位于另一个节点中:例如,正在移动的大矩形中的一个气球。如果气球不在长方形里,我希望气球消失。
我试过了did开始接触函数,但是它不起作用。
谢谢你的帮忙
发布于 2016-02-25 18:28:00
给定具有相同父SKSpriteNode(s)的的2
let spriteA = SKSpriteNode()
let spriteB = SKSpriteNode()
let parent = SKNode()
parent.addChild(spriteA)
parent.addChild(spriteB)我们可以用这行检查spriteA的spriteA点是否在spriteB的帧(边框)内。
CGRectContainsPoint(spriteB.frame, spriteA.position)交叉点
或者,我们也可以检查精灵写入的边界框之间的交集。
CGRectIntersectsRect(spriteA.frame, spriteB.frame)当spriteA和spriteB没有相同的父级时
现在让我们考虑一下这个场景
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)https://stackoverflow.com/questions/35635004
复制相似问题