new*_*ing 3 audio avfoundation swift
当我的英雄节点收集硬币并且我的游戏中存在这种小打嗝时,我有这种声音效果.当收集硬币时涉及声音时,它不像其他游戏那样平滑.我究竟做错了什么?继承我的声音代码:
class GameScene: SKScene, SKPhysicsContactDelegate {
var coinSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("coin", ofType: "wav")!)
var coinAudioPlayer = AVAudioPlayer()
override func didMoveToView(view: SKView) {
coinAudioPlayer = AVAudioPlayer(contentsOfURL: coinSound, error: nil)
coinAudioPlayer.pause()
}
if firstBody.categoryBitMask == HeroCategory && secondBody.categoryBitMask == CoinCategory {
coinAudioPlayer.prepareToPlay()
coinAudioPlayer.play()
coinAudioPlayer.currentTime = NSTimeInterval(1.0)
}
Run Code Online (Sandbox Code Playgroud)
使用SKAction.playSoundFileNamed.当您SKAction提前创建实例时,它会执行所有必要的准备工作以执行操作(在这种情况下,播放声音),而不会在游戏过程中出现延迟.要运行动作(播放声音),请runAction 在节点上调用- 这可以是任何节点,甚至是场景本身.
由于您使用哪个节点用于声音目的并不重要,因此请使用最方便的节点.例如,如果您只是播放声音,则可以runAction在现场调用.但是,如果你的声音是一个动作组或序列的一部分,比如动画精灵,你可以将声音动作作为该序列的一部分,并在你动画的精灵上播放它.
有关操作的更多信息,请参见SpriteKit编程指南.
不相关的Swift提示:使用let而不是var用于不会改变的引用.它可以帮助您避免以后引入错误,它也可能有助于编译器优化您的代码.
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |