gpt4 book ai didi

iphone - 如何处理游戏的声音收集?

转载 作者:行者123 更新时间:2023-12-03 21:03:58 24 4
gpt4 key购买 nike

我们正在开发许多具有各种音效以及口语短语和表达方式的游戏。当前的设计将声音片段存储为单独编号的文件。一组#defines 将人类可读的名称映射到文件名。例如:

#define SOUND_COOL              @"0038"  // Cool!
#define SOUND_YOU_GOT_IT @"0039" // You got it!
#define SOUND_FANTASTIC_1 @"0040" // Fantastic! version 1
#define SOUND_FANTASTIC_2 @"0041" // Fantastic! version 2

这种方法的一个优点是代码变得非常可读。您只需阅读即可看到会播放什么声音。

问题之一是我们有很多语调或某些短语的版本。只要合适,手工编码的 switch 语句就会从可用版本中随机选择。

如果能够概括这一点,并且如果有多个可用版本,则可以选择播放随机版本,这将是很好的选择。这里的一种选择可能是放弃 #define 方法并创建一个适当的数据库表,其中包含允许选择与给定条件匹配的所有声音文件的字段。然后,类和方法将封装所需的功能。

在可能拥有数百个声音文件的应用程序中组织/编目声音的其他一些想法是什么?

最佳答案

NSDictionary 怎么样?您可以将字典存储在 plist 中并在启动时加载一次。键将是某种声音 ID(@“Cool”、@“You got it”等),值可以是字符串或数组。

字符串表示有一个声音,所以播放它;数组意味着有多个选择,因此请随机选择一个。

您可以将所有这些包装在一个类中,因此如果您进行如下调用:

[soundBox playSound:@"Cool"];

soundBox 的代码如下:

id obj = [myDictionary objectForKey:key];
if ([obj isKindOfClass:[NSString class]]) {
// play the sound in file named obj
} else if ([obj isKindOfClass:[NSArray class]]) {
// pick a random sound from the array obj
}

关于iphone - 如何处理游戏的声音收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490329/

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