コード例 #1
0
int RandomColor::pickSaturation( const ColorInfo& info, Luminosity luminosity )
{
    Range sRange = {info.sbRanges[0].s, info.sbRanges.back().s};
    const int sRangeSize = sRange.size();

    switch (luminosity) {
        case Dark:
            sRange[0] = sRange[1] - sRangeSize * 0.3;
            break;

        case Light:
            sRange[1] = sRange[0] + sRangeSize * 0.25;
            break;

        case Bright:
            sRange[0] = sRange[1] - sRangeSize * 0.3;
            break;

        case Normal:
            sRange[0] = std::max(sRange[0], std::min(50, sRange[1]));
            break;

        case RandomLuminosity:
            // Just use the whole range
            break;
    }
    return randomWithin(sRange);
}
コード例 #2
0
int RandomColor::pickBrightness( int s, const ColorInfo& info, Luminosity luminosity )
{
    Range bRange = getBrightnessRange(s, info);
    const int bRangeSize = bRange.size();

    switch (luminosity) {
        case Dark:
            bRange[1] = bRange[0] + std::min(bRangeSize * 0.3, 30.0);
            break;

        case Light:
            bRange[0] = bRange[1] - std::min(bRangeSize * 0.3, 15.0);
            break;

        case Bright:
            bRange[0] = bRange[1] - std::min(bRangeSize * 0.3, 10.0);
            break;

        case Normal:
            bRange[0] += bRangeSize * 0.5;
            bRange[1] -= bRangeSize * 0.125;
            break;

        case RandomLuminosity:
            // Just use the whole range
            break;
    }
    return randomWithin(bRange);
}
コード例 #3
0
int RandomColor::generate( Color color, Luminosity luminosity )
{
    const ColorInfo& info = colorMap[color];
    const int h = randomWithin(info.hRange);
    if (color != RandomHue) {
        return generate(h, info, luminosity);
    } else {
        return generate(h, getColorInfo(h), luminosity);
    }
}
コード例 #4
0
float TeamHero::getGongJiLi(ValueRange range) const
{
	float gongJiLi =  0;
	switch (range)
	{
	case Range_Ramdom:
		gongJiLi = randomWithin(mPro.mGongJiLi_MIN,mPro.mGongJiLi_MAX);
		break;
	case Range_Max:
		gongJiLi = max(mPro.mGongJiLi_MIN,mPro.mGongJiLi_MAX);
		break;
	case Range_Average:
		gongJiLi = (mPro.mGongJiLi_MIN+mPro.mGongJiLi_MAX)/2.0f;
		break;
	case Range_Min:
		gongJiLi = min(mPro.mGongJiLi_MIN,mPro.mGongJiLi_MAX);
		break;
	default:
		CCAssert(false,"不支持的值域类型");
		break;
	}
	return gongJiLi;
}
コード例 #5
0
int RandomColor::generate( const Range& hueRange, Luminosity luminosity )
{
    const int h = randomWithin(hueRange);
    const ColorInfo& info = getColorInfo(h);
    return generate(h, info, luminosity);
}