我有纸牌游戏应用程序,可以根据游戏场景播放声音文件。每个场景都有一个由6个声音文件组成的数组,当游戏场景出现时,每次调用函数时都会随机播放1个声音。
有7种不同的场景,每个场景都有一系列声音。目前,我有7个不同的函数;每个场景都有一个函数。我正在寻找一种方法,以取代7个功能,这是相同的,除了声音阵列在每个功能与1功能。
当玩家被敲诈时,下面的函数就会被调用,当玩家失败时,会调用另一个函数。这些是场景。
func soundArrayPlayerBlackjack(){
let sounds = ["looks", "my seat2", "knicks", "daddy money", "cheeto", "whipped"]
guard let sound = sounds.randomElement(),
let soundURL = Bundle.main.url(forResource: sound, withExtension: "mp3") else { return }
do {
audioPlayer = try AVAudioPlayer(contentsOf: soundURL)
}
catch {
print(error)
}
audioPlayer?.play()}```发布于 2020-08-28 01:05:22
您可以使用名为sounds的参数编写一个函数。
func playRandomSound(sounds: [String]){
guard let sound = sounds.randomElement(),
let soundURL = Bundle.main.url(forResource: sound, withExtension: "mp3") else { return }
do {
audioPlayer = try AVAudioPlayer(contentsOf: soundURL)
}
catch {
print(error)
}
audioPlayer?.play()
}然后,声明包含这些声音的7个数组:
let blackJackSounds = ["looks", "my seat2", "knicks", "daddy money", "cheeto", "whipped"]
let getBustSounds = ["otherSound1", "otherSound2", "otherSound3"]
let loseSounds = ["foo", "bar", "baz"]
// and so on...现在不应该调用soundArrayPlayerBlackjack(),而应该调用:
playRandomSound(sound: blackJackSounds)对于任何其他声音组,只需传入正确的数组即可。
https://stackoverflow.com/questions/63625375
复制相似问题