gpt4 book ai didi

Swift 音频播放速度

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:11 24 4
gpt4 key购买 nike

我正在开发一款主要 Sprite 是纺车的游戏。我想将音频与随着车轮减速而改变音高的纺车相关联。当车轮停止旋转时,我希望音效停止。有人可以指出我正确的方向吗?

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

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 音频播放速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44350621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com