cocos2dx 很简单的把音效处理封装在SimpleAudioEngine里面,播放文件的时候,创建一个文件唯一标识,当然不是简单的来一个文件就一个index++,因为这样区别不了同一文件的播放!
unsigned int _Hash(const char *key)
{
unsigned int len = strlen(key);
const char *end=key+len;
unsigned int hash;
for (hash = 0; key < end; key++)
{
hash *= 16777619;
hash ^= (unsigned int) (unsigned char) toupper(*key);
}
return (hash);
}
上面的代码,我也弄不明白。确定的是能够给一个文件明创建一个标识数字,同一文件同一个标识。这样,播放统一音效的时候,可以通过这个标识找到相对应的资源文件,我们可以通过一个map管理。