测试SKSpriteNode是否低于另一个SKSpriteNode

时间:2015-08-03 13:11:38

标签: ios swift skspritenode

我正在制作一个球必须遵循某条路径的游戏。如果它离开了道路,它们会失败。问题是,我无法弄清楚如何测试球是否离开路径。我尝试使用node.intersectsNode(background),但由于背景覆盖了整个屏幕,因此无效。

我想到的一种方法是测试路径是否在球下。我不知道这个代码。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果你的路径是曲线,那就不会那样。唯一可以比较节点位置相互比较的情况是它们大致可以被视为rects(例如,如果将它们视为正方形,则可以比较两个圆)。但我认为你的路径有点类似于道路所以你必须检查你的球是否还在上面。

我可以建议你开始的事情是看看TinyWings克隆教程,网上有很多这些教程,它们涵盖了使用物理学的基础知识,更重要的是,三角测量和使用多边形检测碰撞。

答案 1 :(得分:0)

您可以在更新功能中试用我开发的代码比较您节点的位置。这个方法应该允许检查你的Ball何时离你的另一个节点很近。

试试这个!

override func update(currentTime: NSTimeInterval) {
super.update(currentTime)

if yourBall.position.x < yourOtherNode.position.x + yourBall.size.width / 2  && yourBall.position.x > yourOtherNode.position.x - yourBall.size.width / 2 && yourBall.position.y < yourOtherNode.position.y + yourBall.size.height / 2 && yourBall.position.y > yourOtherNode.position.y - yourBall.size.height / 2{
} else {
/* your function right here  if the ball loses track*/
}

我仍然是编码的新手,所以我希望这个“丑陋的代码”对你有用!