SFML - oświetlenie
Ostatnio zmodyfikowano 2014-07-28 13:15
unkn9wn |
» 2014-07-28 12:50:56 Nie jestem pewien czy dobrze zrozumiałeś, więc podaję trochę kodu sf::RenderTexture lightingTex; lightingTex.create( 1024, 640 ); lightingTex.clear( sf::Color( 0, 0, 0, 0 ) ); lightingTex.draw( light, sf::BlendAdd ); lightingTex.display();
sf::Sprite lighting; lighting.setTexture( lightingTex.getTexture() );
window.draw( lighting, sf::BlendMultiply ); Aby osiągnąć efekt znikającego światła, możesz np.: zbudować trójkąt z wierzchołków i ustawić kolor światła dla każdego z wierzchołków. Dzięki temu kolory się zleją wewnątrz. Tak więc dla wierzchołka przy graczu, dałbyś jasność (ostatni parametr funkcji sf::Color()) na 255, dla pozostałych dwóch wierzchołków, oddalonych od gracza - 0 trójkąt z wierzchołków sf::VertexArray light( sf::Triangles, 3 ); light[ 0 ].texCoords = light[ 0 ].position = sf::Vector2f( 500, 300 ); light[ 1 ].texCoords = light[ 1 ].position = sf::Vector2f( 700, 200 ); light[ 2 ].texCoords = light[ 2 ].position = sf::Vector2f( 700, 400 ); light[ 0 ].color = sf::Color( 255, 255, 255, 255 ); light[ 1 ].color = light[ 2 ].color = sf::Color( 255, 255, 255, 0 ); [ / code ] |
|
ggerek Temat założony przez niniejszego użytkownika |
» 2014-07-28 13:15:54 Dzięki, dokładnie o taki efekt mi chodziło :D
|
|
1 « 2 » |