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); }
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); }
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); } }
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; }
int RandomColor::generate( const Range& hueRange, Luminosity luminosity ) { const int h = randomWithin(hueRange); const ColorInfo& info = getColorInfo(h); return generate(h, info, luminosity); }