Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift音频播放速度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一款主要精灵是旋转轮的游戏.我想将音频与旋转车轮相关联,当车轮减速时,它会改变音高.当车轮停止旋转时,我希望声音效果停止.有人能指出我正确的方向吗?

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

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音频播放速度所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。