Trigger sound effects

This commit is contained in:
Daniel Steckert 2020-06-11 21:54:48 +02:00 committed by Marcel Schwarz
parent 6370d40e25
commit e53e3953dc
4 changed files with 22 additions and 0 deletions

View File

@ -132,6 +132,7 @@ class EntityManager {
scene.addChild(spriteNode.unitcountLabel)
scene.addChild(spriteNode.fire)
}
SoundManager.sharedInstance.playSoundEffect(pathToFile: "attack_base",fileExtension: "wav",volumeLevel: 5.0)
}
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.capture.fifty.bases", increasePercentComplete: 2)
}

View File

@ -59,6 +59,7 @@ class HUD: GKEntity {
EntityManager.gameEMInstance.getOpponentBases(for: EntityManager.gameEMInstance.getTeam()).forEach({base in base.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(base.unitCount)"})
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.spy.ten", increasePercentComplete: 10)
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav", volumeLevel: 10.0)
}
)
defSkill = SingeClickButtonNode(
@ -70,6 +71,7 @@ class HUD: GKEntity {
DataService.sharedInstance.localRoundData.hasDefenceBoost = true
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.def.ten", increasePercentComplete: 10)
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav",volumeLevel: 10.0)
}
)
atkSkill = SingeClickButtonNode(
@ -81,6 +83,7 @@ class HUD: GKEntity {
DataService.sharedInstance.localRoundData.hasAttackBoost = true
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.atk.ten", increasePercentComplete: 10)
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav",volumeLevel: 10.0)
}
)
@ -186,5 +189,6 @@ class HUD: GKEntity {
SKAction.scale(by: 0.5, duration: 1),
])
currentRoundLabel.run(newRoundAction)
SoundManager.sharedInstance.playSoundEffect(pathToFile: "new_round", fileExtension: "wav", volumeLevel: 5.0)
}
}

View File

@ -50,6 +50,10 @@ class RoundTimer: Timer {
timeLeft -= 1
EntityManager.gameEMInstance.updateTime(time: (timeLeft > 0 ? String(timeLeft) : roundEnded))
if 1 ... 5 ~= timeLeft {
SoundManager.sharedInstance.playSoundEffect(pathToFile: "countdown", fileExtension: "wav", volumeLevel: 5.0)
}
if timeLeft == 0 {
EntityManager.gameEMInstance.removeModal()
RoundCalculatorService.sharedInstance.resetNumberOfAttacksAndFormats()

View File

@ -13,7 +13,9 @@ class SoundManager {
public static var sharedInstance = SoundManager()
var audioPlayer = AVAudioPlayer()
var effectPlayer = AVAudioPlayer()
var backgroundMainMenuAudio: URL?
var soundEffect: URL?
var isMusicPlaying = false
var isMusicEnabled = true
@ -39,6 +41,17 @@ class SoundManager {
UserDefaults.standard.set(true, forKey: "noMusic")
}
func playSoundEffect(pathToFile: String, fileExtension: String, volumeLevel: Float){
soundEffect = Bundle.main.url(forResource: pathToFile, withExtension: fileExtension)
do {
effectPlayer = try AVAudioPlayer(contentsOf: soundEffect!)
} catch {
//TODO: Add logging
}
effectPlayer.volume += volumeLevel
effectPlayer.play()
}
func setVolume(_ volume: Float) {
audioPlayer.volume = volume
}