在我的游戏场景中,我有以下代码:
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音频播放速度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)