diff --git a/GoldWars/GoldWars/Scenes/MenuScene.swift b/GoldWars/GoldWars/Scenes/MenuScene.swift index a65bda9..a220d5c 100644 --- a/GoldWars/GoldWars/Scenes/MenuScene.swift +++ b/GoldWars/GoldWars/Scenes/MenuScene.swift @@ -11,10 +11,8 @@ import SpriteKit class MenuScene: SKScene { var entityManager: EntityManager! - var soundManager: SoundManager! override func sceneDidLoad() { - soundManager = SoundManager() entityManager = EntityManager(scene: self) let midX = self.size.width / 2 let midY = self.size.height / 2 @@ -25,7 +23,7 @@ class MenuScene: SKScene { onButtonPress: { if CommandLine.arguments.contains("--no-matchmaking") { self.loadScene(scene: GameScene(size: self.size)) - self.soundManager.stopMenuMusic() + SoundManager.stopMenuMusic() } else { MatchmakingHelper.sharedInstance.presentMatchmaker(scene: self) } @@ -39,8 +37,8 @@ class MenuScene: SKScene { })) entityManager.add(Background(size: self.size)) - if SoundManager.isMusicPlaying == false { - soundManager.startMenuMusic() + if SoundManager.isMusicPlaying == false && SoundManager.isMusicEnabled == true { + SoundManager.startMenuMusic() } } diff --git a/GoldWars/GoldWars/SettingsScene.swift b/GoldWars/GoldWars/SettingsScene.swift index 96aec88..ae91cce 100644 --- a/GoldWars/GoldWars/SettingsScene.swift +++ b/GoldWars/GoldWars/SettingsScene.swift @@ -14,7 +14,7 @@ class SettingsScene: SKScene { override func sceneDidLoad() { entityManager = EntityManager(scene: self) let positionX = self.size.width * 0.1 - let positionY = self.size.height * 0.1 + let positionY = self.size.height * 0.05 entityManager.add(Button(name: "backToMenuScene", iconName: "", @@ -23,6 +23,20 @@ class SettingsScene: SKScene { onButtonPress: { self.loadScene(scene: MenuScene(size: self.size)) })) + entityManager.add(Button(name: "StopMenuMusic", + iconName: "", + text: "ON/OFF", + position: CGPoint(x: self.size.width / 2, y: self.size.height / 2), + onButtonPress: { + if SoundManager.isMusicPlaying == true { + SoundManager.stopMenuMusic() + SoundManager.isMusicEnabled = false + } else { + SoundManager.isMusicEnabled = true + SoundManager.startMenuMusic() + } + + })) entityManager.add(Background(size: self.size)) } diff --git a/GoldWars/GoldWars/SoundManager.swift b/GoldWars/GoldWars/SoundManager.swift index ec09e1c..a9cad63 100644 --- a/GoldWars/GoldWars/SoundManager.swift +++ b/GoldWars/GoldWars/SoundManager.swift @@ -10,11 +10,12 @@ import SpriteKit import AVFoundation class SoundManager { - var audioPlayer = AVAudioPlayer() - var backgroundMainMenuAudio: URL? + static var audioPlayer = AVAudioPlayer() + static var backgroundMainMenuAudio: URL? static var isMusicPlaying: Bool = false + static var isMusicEnabled: Bool = true - func startMenuMusic() { + static func startMenuMusic() { SoundManager.isMusicPlaying = true backgroundMainMenuAudio = Bundle.main.url(forResource: "intro-music", withExtension: "mp3") do { @@ -24,11 +25,21 @@ class SoundManager { } audioPlayer.numberOfLoops = -1 audioPlayer.prepareToPlay() - audioPlayer.play() + if SoundManager.isMusicEnabled == true { + audioPlayer.play() + } } - func stopMenuMusic() { + static func stopMenuMusic() { audioPlayer.pause() SoundManager.isMusicPlaying = false } + + static func setVolume(_ volume: Float) { + audioPlayer.volume = volume + } + + static func getVolume() { + return audioPlayer.volume + } }