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/

相关文章:

iphone - AVQueuePlayer是否支持异步添加AVPlayerItems?

iOS:我可以将 Safari 中的 url 共享到我自己的应用程序吗?

ios - 如何让 Sprite Kit 以正确的尺寸显示来自 atlas 的@2x 图像?

ios - 如何从可用字符串中选择随机字符串

ios - iOS-以编程方式取消所有声音/音乐?

iphone - 用于删除 HTML-head-tag 的正则表达式

ios - 自定义 XIB 转换?

ios - firebaseobserveSingleEvent 在 swift 中已弃用

xcode - Scenekit如何在不同位置有X数量的矩形?

swift - Google 通过 Firebase 登录 : GIDSignInDelegate does not conform to ViewController