Swift音频播放速度

Swift音频播放速度,第1张

概述我正在开发一款主要精灵是旋转轮的游戏.我想将音频与旋转车轮相关联,当车轮减速时,它会改变音高.当车轮停止旋转时,我希望声音效果停止.有人能指出我正确的方向吗? 在我的游戏场景中,我有以下代码: override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { for touch in touches { 我正在开发一款主要精灵是旋转轮的游戏.我想将音频与旋转车轮相关联,当车轮减速时,它会改变音高.当车轮停止旋转时,我希望声音效果停止.有人能指出我正确的方向吗?

在我的游戏场景中,我有以下代码:

overrIDe func touchesBegan(_ touches: Set<UItouch>,with event: UIEvent?) {    for touch in touches {        let location = touch.location(in: self)        //Start spinning the wheel        if atPoint(location).name == "play_button" {            player?.physicsBody?.angularVeLocity = 0            player?.rotatePlayer()            //Click back button        } else if atPoint(location).name == "back_button" {            let play_scene = CharacterSelectScene(filenamed: "CharacterSelect")            play_scene?.scaleMode = .aspectFill            self.vIEw?.presentScene(play_scene!,Transition: SKTransition.doorsOpenVertical(withDuration: 1))        } else if atPoint(location).name == "settings_button" {            let play_scene = SettingsScene(filenamed: "SettingsScene")            play_scene?.scaleMode = .aspectFill            self.vIEw?.presentScene(play_scene!,Transition: SKTransition.doorsOpenVertical(withDuration: 1))        }    }}overrIDe func dIDSimulatePhysics() {    let speed = player?.physicsBody?.angularVeLocity    if (speed != CGfloat(0.0)) {        if (speed! <= CGfloat(0.1)){            finishedRotation = true        }    }}overrIDe func dIDFinishUpdate() {    if (finishedRotation == true) {        let play_scene = QuestionScene(filenamed: "QuestionScene")        play_scene?.scaleMode = .aspectFill        self.vIEw?.presentScene(play_scene!,Transition: SKTransition.doorsOpenVertical(withDuration: 1))    }}func dIDBegin(_ contact: SKPhysicsContact) {    let defaults = UserDefaults.standard    var firstbody = SKPhysicsBody()    var secondBody = SKPhysicsBody()    if (contact.bodyA.node?.name == "pin") {        firstbody = contact.bodyA        secondBody = contact.bodyB    } else {        firstbody = contact.bodyB        secondBody = contact.bodyA    }    if (firstbody.node?.name == "pin" && secondBody.node?.name == "geography") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")    } else if (firstbody.node?.name == "pin" && secondBody.node?.name == "maths") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")    } else if (firstbody.node?.name == "pin" && secondBody.node?.name == "history") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")    } else if (firstbody.node?.name == "pin" && secondBody.node?.name == "scIEnce") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")    }}

Player类中的rotatePlayer方法定义如下:

func rotatePlayer() {    let random = GKRandomdistribution(lowestValue: 20,highestValue: 120)    let r = random.nextInt()    self.physicsBody?.angularVeLocity = 0    self.physicsBody?.angularVeLocity = CGfloat(r)    self.physicsBody?.angulardamPing = 1.02}
解决方法 我已经解决了这个问题,代码如下:

func playSound() {    let url = Bundle.main.url(forResource: "clicker",withExtension: "m4a")!    do {        SoundEffect = try AVAudioPlayer(contentsOf: url)        guard let players = SoundEffect else { return }        players.preparetoPlay()        players.play()    } catch let error as NSError {        print(error.description)    }}func dIDEnd(_ contact: SKPhysicsContact) {    let defaults = UserDefaults.standard    var firstbody = SKPhysicsBody()    var secondBody = SKPhysicsBody()    if (contact.bodyA.node?.name == "pin") {        firstbody = contact.bodyA        secondBody = contact.bodyB    } else {        firstbody = contact.bodyB        secondBody = contact.bodyA    }    if (firstbody.node?.name == "pin" && secondBody.node?.name == "geography") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")        playSound()    } else if (firstbody.node?.name == "pin" && secondBody.node?.name == "maths") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")        playSound()    } else if (firstbody.node?.name == "pin" && secondBody.node?.name == "history") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")        playSound()    } else if (firstbody.node?.name == "pin" && secondBody.node?.name == "scIEnce") {        let set_topic = secondBody.node?.name        defaults.set(set_topic,forKey: "topic")        playSound()    }}
总结

以上是内存溢出为你收集整理的Swift音频播放速度全部内容,希望文章能够帮你解决Swift音频播放速度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1016840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存