ios - 仅当发生碰撞时才运行 skaction

标签 ios swift sprite-kit

我正在开发一款游戏,如果两个相同的物体之间发生碰撞,就会播放声音。我已经让这部分工作正常,但我只想在 View 中发生碰撞时播放声音。我有一个滚动背景,前方的碰撞会发出噪音。

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

现在我正在使用这段代码:

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

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

如有任何帮助,我们将不胜感激。

最佳答案

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

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

关于ios - 仅当发生碰撞时才运行 skaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741273/

相关文章:

android - Worklight API 中是否有任何应用程序间通信设施?

ios - UICollectionView 到 UICollectionViewCell

ios - xamarin 构建在模拟器上通过但在真实设备上失败

ios - UITableView 和 UITextField borderColor 问题

swift - 将节点链接到另一个节点 SpriteKit - Swift

swift - SKSpriteNode 导致场景变灰

ios - 更改 View 和设置标签会产生意想不到的后果

ios - 具有核心数据的实体之间的两个属性具有相同的值

swift - Xcode 中的按钮是否有不止一层约束?

ios - 使用 SCNRenderer 时未呈现 overlaySKScene