cocos2d-x CCRandom_0_1()有BUG.

CCRandom_0_1() 他的范围是[0-1]   注意!!! :1是闭区间,所以返回的值可以是1。 

可以看到CCarray randomObject 的源码。

CCObject* CCArray::randomObject()
{
    if(data->num==0) return NULL;

    return data->arr[(int)(data->num*CCRANDOM_0_1())];
}

打个比方 当CCarray 里面只有一个element , 如果 此时 random拿到为1 ,那么再取值就是拿index 为1的元素。而Array里面只有一个元素。Index为0.

所以取到index 为1的元素是没有的。  

CCArray 里面的 randomObject()是存在bug 的。


你可能感兴趣的:(cocos2d-x CCRandom_0_1()有BUG.)