使用板球音频声音引擎(iOS和Android)如何设置机枪类型的音效。我需要每秒能够播放许多声音实例。音效需要相互叠加。
我的解决方案是创建一个新的 CkSound 实例并忘记它。我看不出一种容易破坏声音,没有复杂的声音跟踪方法。这会导致内存问题吗,因为我在游戏会话过程中创建了数千个 CkSounds?我真的不想跟踪垃圾收集的单个声音。
// Example sound effect call
void SoundManager::playEffect(const char* name){
// I make a sound , play it , and forget about it
sound = CkSound::newBankSound(g_bank, name);
sound->play();
}
我不建议您创建实例并且不要销毁它们,因为这是内存泄漏,因此随着时间的推移,您的应用程序将使用越来越多的内存。
你可以尝试这样的事情...
初始化:
const int k_maxSounds = 5; // maximum number of sound instances to be playing at once
CkSound* g_sounds[k_maxSounds];
for (int i = 0; i < k_maxSounds; ++i)
{
g_sounds[i] = CkSound::newBankSound(g_bank, name);
}
要播放另一个声音实例,请找到第一个可用实例并播放它:
for (int i = 0; i < k_maxSounds; ++i)
{
if (!g_sounds[i]->isPlaying())
{
g_sounds[i]->play();
break;
}
}
-史蒂夫 -板球音频创作者通过电子邮件回复