2015-08-03 35 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*/ 
} 

我對編碼還是很陌生的,所以我希望這真的是「醜陋的代碼」適合你!