void HexagonGame::draw() { wallQuads.clear(); styleData.computeColors(); window.clear(Color::Black); if(!Config::getNoBackground()) { backgroundCamera.apply(); styleData.drawBackground(window, ssvs::zeroVec2f, getSides()); } if(Config::get3D()) { status.drawing3D = true; float effect{styleData._3dSkew * Config::get3DMultiplier() * status.pulse3D}; Vec2f skew{1.f, 1.f + effect}; backgroundCamera.setSkew(skew); for(auto i(0u); i < depthCameras.size(); ++i) { Camera& depthCamera(depthCameras[i]); depthCamera.setView(backgroundCamera.getView()); depthCamera.setSkew(skew); depthCamera.setOffset({0, styleData._3dSpacing * (i * styleData._3dPerspectiveMult) * (effect * 3.6f)}); } for(auto i(0u); i < depthCameras.size(); ++i) { status.overrideColor = getColorDarkened(styleData.get3DOverrideColor(), styleData._3dDarkenMult); status.overrideColor.a /= styleData._3dAlphaMult; status.overrideColor.a -= i * styleData._3dAlphaFalloff; depthCameras[i].apply(); manager.draw(); render(wallQuads); } status.drawing3D = false; } backgroundCamera.apply(); manager.draw(); render(wallQuads); overlayCamera.apply(); drawText(); if(Config::getFlash()) render(flashPolygon); if(mustTakeScreenshot) { window.saveScreenshot("screenshot.png"); mustTakeScreenshot = false; } }
void HexagonGame::draw() { styleData.computeColors(); window.clear(Color::Black); if(!getNoBackground()) { backgroundCamera.apply(); styleData.drawBackground(window.getRenderWindow(), {0, 0}, getSides()); } if(get3D()) { status.drawing3D = true; float effect{styleData.get3DSkew() * get3DMultiplier() * status.pulse3D}; Vector2f skew{1.f, 1.f + effect}; backgroundCamera.setSkew(skew); for(unsigned int i{0}; i < depthCameras.size(); ++i) { Camera& depthCamera(depthCameras[i]); depthCamera.setView(backgroundCamera.getView()); depthCamera.setSkew(skew); depthCamera.setOffset({0, styleData.get3DSpacing() * (i * styleData.get3DPerspectiveMultiplier()) * (effect * 3.6f)}); } for(unsigned int i{0}; i < depthCameras.size(); ++i) { status.overrideColor = getColorDarkened(styleData.get3DOverrideColor(), styleData.get3DDarkenMultiplier()); status.overrideColor.a /= styleData.get3DAlphaMultiplier(); status.overrideColor.a -= i * styleData.get3DAlphaFalloff(); depthCameras[i].apply(); manager.draw(); } status.drawing3D = false; } backgroundCamera.apply(); manager.draw(); overlayCamera.apply(); drawText(); if(getFlash()) render(flashPolygon); if(mustTakeScreenshot) { window.getRenderWindow().capture().saveToFile("screenshot.png"); mustTakeScreenshot = false; } }