随机BOOL以高效的方式为cocos2d

el.*_*ero 8 boolean objective-c cocos2d-iphone arc4random

根据Steffen的帖子,这是BOOL在cocos2d中生成随机s 的有效方法

+(BOOL) getYesOrNo
{
   return (CCRANDOM_0_1() < 0.5f);
}
Run Code Online (Sandbox Code Playgroud)

但是我该如何为此设置范围?(例如0 - 29是间隔,5个BOOL = NO,25个BOOL = YES)

小智 14

你可以这样做:

+(BOOL) getYesOrNo
{
    int tmp = (arc4random() % 30)+1;
    if(tmp % 5 == 0)
        return YES;
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案产生的错误值超过真值,例如1:10表示假值,这是因为制作5,10,15,20,25,30的百分比就像6/30一样根本没有意义 (2认同)