我有一个关于按钮和声音的问题。
我有8个按钮。在加载时,它们应该播放4种声音文件中的1种。每两个按钮相同的声音文件。如果同一声音文件播放在按钮2,按钮1和2将消失。我希望你理解我的问题:)
我现在在那里,按钮可以播放随机声音文件,但我希望每个按钮得到一个随机声音在开始,这应该永远不会改变在这个观点。
希望能得到帮助!
编辑:这是代码
int randomSoundNumber = arc4random() % 4; //random number from 0 to 3
NSLog(@"random sound number = %i", randomSoundNumber);
NSString *effectTitle;
switch (randomSoundNumber) {
case 0:
effectTitle = @"bell";
break;
case 1:
effectTitle = @"brake";
break;
case 2:
effectTitle = @"dog";
break;
case 3:
effectTitle = @"bird";
break;
default:
break;
}
SystemSoundID soundID;
NSString *soundPath = [[NSBundle mainBundle] pathForResource:effectTitle ofType:@"mp3"];
NSURL *soundUrl = [NSURL fileURLWithPath:soundPath];
AudioServicesCreateSystemSoundID ((__bridge CFURLRef)soundUrl, &soundID);
AudioServicesPlaySystemSound(soundID);发布于 2015-04-11 06:43:51
创建一个可变集并向其添加56 NSNumbers (0到55)。生成0到55之间的随机数r,并从集合中得到rth数。这代表了你的第一对按钮。将其从集合中移除,然后再重复三次,每次使用一个较小的集合。现在有4个数字n介于0到55之间,每个数字代表一对数字(b1,b2)。
b1 = n/7; // (integer divide)
b2 = (n-b1*10)/7;
b2 = b1==b2?b2+1;为什么是56?8个物体共有64个排列。有8个排列重复,所以如果你删除这些,你还有56个数字。这些数字映射到排列01,02,...,07,10,12,.(其中的诱饵已被移除)。
https://stackoverflow.com/questions/29559500
复制相似问题