Exemplo n.º 1
0
	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; }
	}
Exemplo n.º 2
0
	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; }
	}