只有在视图中出现碰撞时才运行skaction

时间:2015-09-23 13:40:55

标签: ios swift sprite-kit

我在游戏中工作,如果两个相同的身体之间发生碰撞,那么声音会播放。我已经让这部分工作正常,但我只想在视图中发生碰撞时播放声音。我有一个滚动的背景,前面的碰撞发出了噪音。

是否有限制此声音仅在视野中发生碰撞时播放?

现在我正在使用此代码:

let rocksCollide = SKAction.playSoundFileNamed("rocks.wav", waitForCompletion: false)

 if nodeB.name == "SMALLASTEROID" && nodeA.name == "SMALLASTEROID"{
            runAction(rocksCollide)
 }

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以检查node.position是否在可见框内。例如。

if (CGRectContainsPoint(visibleFrame, nodeA.position)) {
   // Play sound.     
}