2015-08-03 34 views
1

我正在制作一个游戏,其中一个球必须遵循特定的路径。如果它脱离了道路,它们就会失去。问题是我无法弄清楚如何测试球是否在路上。我试图使用node.intersectsNode(background),但由于背景覆盖整个屏幕,它不起作用。测试SKSpriteNode是否低于另一个SKSpriteNode

我想到的一种方法是测试路径是否在球之下。我不知道这个代码。 任何想法?

+0

您是否尝试过比较节点位置? – Fantattitude

回答

0

如果你的路径是曲线,它不会像那样工作。当你可以比较节点位置时,唯一的情况是它们大致可以被当作rects(例如,如果你把它们当作正方形,你可以比较两个圆)。但我认为你的道路有点类似于一条道路,所以你必须检查你的球是否仍然在上面。

我可以建议你从头开始的事情是看看TinyWings的克隆教程,网上有很多它们,包括使用物理的基本知识,更重要的是,三角测量和工作多边形来检测碰撞。

0

你可以试试这个代码,我发展到比较位置的节点在您的更新FUNC。这个方法应该允许检查你的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*/ 
} 

我对编码还是很陌生的,所以我希望这真的是“丑陋的代码”适合你!