void MockNavi::generateCity() { float* projection = m_camera.getViewProjectionMatrix(); ShaderLighting* pShader = new ShaderLighting(projection); // generate base plate vec4f groundColor(0.8, 0.8, 0.6, 1.0); vec3f position = vec3f(0.0, -0.001, 0.0); vec3f size = vec3f(CITY_GRID_SIZE * 3, 0.0, -CITY_GRID_SIZE * 2.0 * m_houseCount); Ground* ground = new Ground(position, size, groundColor, pShader); m_renderList.push_back(ground); // generate street z direction vec4f streetColor(0.0, 0.0, 0.0, 1.0); vec3f streetPosition = vec3f(0.6 * CITY_GRID_SIZE, 0.0, 0.0); vec3f streetSize = vec3f(CITY_GRID_SIZE * 0.6, 0.0, -CITY_GRID_SIZE * 2.0 * m_houseCount); Street* obj = new Street(streetPosition, streetSize, streetColor, pShader); m_renderList.push_back(obj); // generate streets x direction for (int z = 1; z < m_houseCount; ++z) { vec4f streetColor(0.0, 0.0, 0.0, 1.0); vec3f streetPosition = vec3f(0.0, 0.0, 0.6 - z * CITY_GRID_SIZE); vec3f streetSize = vec3f(CITY_GRID_SIZE * 3, 0.0, CITY_GRID_SIZE * 0.6); Street* obj = new Street(streetPosition, streetSize, streetColor, pShader); m_renderList.push_back(obj); m_updateList.push_back(obj); } // generate car vec3f carPosition(1.4 * CITY_GRID_SIZE, 0.001, -0.3); vec3f carSize(0.2f, 0.2f, 0.3f); vec4f carColor(0.7, 0.3, 0.3, 1.0); Car* car = new Car(carPosition, carSize, carColor, pShader); m_renderList.push_back(car); // generate houses vec4f houseColor(0.6, 0.6, 0.8, 1.0); for (int x = 0; x < 2; ++x) { for (int z = 0; z < m_houseCount; ++z) { float posx = x * 2.0 * CITY_GRID_SIZE; float posy = 0.0; float posz = -z * 2.0 * CITY_GRID_SIZE; vec3f housePosition(posx, posy, posz); vec3f houseSize(1.0, 1.0, 1.0); House* obj = new House(housePosition, houseSize, houseColor, pShader); m_renderList.push_back(obj); m_updateList.push_back(obj); } } }
void FlappyCatColorScheme::generateDayScheme() { std::uniform_real_distribution<HslColor::value_type> distribution(0.0, 360.0); HslColor::value_type hue = distribution(mGenerator); HslColor heroColor(hue, 100.0, 50.0); HslColor blockColor(heroColor); blockColor.rotateHue(150.0); blockColor.setSaturation(70.0); blockColor.setLuminance(40.0); HslColor dirtColor(blockColor); dirtColor.setLuminance(20.0); HslColor backgroundColor(heroColor); backgroundColor.rotateHue(210.0); backgroundColor.setSaturation(100.0); backgroundColor.setLuminance(85.0); HslColor cloudColor(heroColor); cloudColor.setLuminance(100.0); HslColor houseColor(heroColor); houseColor.rotateHue(210.0); houseColor.setSaturation(50.0); houseColor.setLuminance(55.0); mScheme[BackgroundColor] = backgroundColor.toRgb(); mScheme[BlockColor] = blockColor.toRgb(); mScheme[HeroColor] = heroColor.toRgb(128); mScheme[HouseColor] = houseColor.toRgb(); mScheme[CloudColor] = cloudColor.toRgb(); mScheme[DirtColor] = dirtColor.toRgb(); mScheme[MascotBodyColor] = Color(0, 0, 0); mScheme[MascotScarfColor] = Color(255, 255, 255); mScheme[MascotMouthColor] = Color(255, 128, 0); }