如何检查CGRect是否与任何SpriteNode相交?

时间:2015-01-10 00:34:10

标签: swift sprite-kit

一些背景知识:我有函数spawnBubbles(),它使用另一个函数determineSpawnPoint()的输出。

determineSpawnPoint()会返回随机CGPoint。还有一个动作,它在随机X坐标CGPoint中产生0.5秒的SpriteNodes。

问题:由于determineSpawnPoint()是随机的,有时会在附近创建一行中的2或3个SpriteNodes,因此它们会相互交叉。

我想要实现什么:创建一个功能

 func checkForFreeSpace(spawnPoint:CGPoint) -> Bool{
        //some code 
    }

如果某个点周围有空闲空间,则返回true

所以,基本上,当我得到新的随机CGPoint时,我想在它周围实现CGRect,并检查这个矩形是否与某些SpriteNodes相交(在常识中说,如果它周围有自由空间)

1 个答案:

答案 0 :(得分:3)

您可以从点和节点创建两个CGRects,并使用CGRectIntersectsRect函数检查它们是否相交。如果函数相交,函数将返回true

if (CGRectIntersectsRect(rect1, rect2))
{
    println("They intersect")
}