Keine Ahnung, ich stehe total auf dem Schlauch und sehe den Wald wohl vor lauter Bäumen nicht...
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
if(m_colorClock.getElapsedTime().asMilliseconds()>=1000/180)
{
m_spotlightColorR=static_cast<int>((std::sinf(++m_sin)+1)*255/180);
if(m_sin>=180)
m_sin=0;
m_spotlightSprite.setColor(sf::Color(m_spotlightColorR, m_spotlightColorG, m_spotlightColorB, 175));
m_colorClock.restart();
}
|
Jedes 180stel einer Sekunde solls aufgerufen werden, dann soll der Wert m_sin inkrementiert werden und nun habe ich einen Wert aus der Periode von -1 bis 1 +1, also einen Wert zwischen 0-2, wodurch ich mit multiplizieren von 255 und folgendem dividieren durch 180 einen Wert aus 0-255 habe. Das weise ich dann meinem Farbwert zu und lege dann die Farbe fest.
Das Ergebnis ist... Naja, ein Sprite ohne Veränderung. Alles bleibt gleich. Die Werte sind wohl zu klein.
Wie ich das Ganze auf die anderen Farbwerte übertragen kann um so Abwechslung reinzubringen, da habe ich schon eine Idee, die beim näherem Durchdenken aber wohl eher zu was ganz hässlichem führen würde. Ich nehme 'ne Pseudozufallszahl zwischen 1 und 3 und durchlaufe meinen oberen Prozess, wenn er dann korrigiert wurde, auf den jeweiligen, zugehörigen Farbwert.
MfG
Check