Wenn die for-Schleife einmal durchläuft wird das Bild dunkler wenn aber dann die for-Schleife von vorne beginnt wird das Bild wieder auf ganz hell gesetzt, darum blinkt es.
Hoffe das war verständlich.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
int main()
{
sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Test");
App.SetFramerateLimit(60);
sf::Image image;
if (!image.LoadFromFile("Bild.png"))
{
return EXIT_FAILURE;
}
sf::Sprite sprite(image); Das Bild kann man im Konstruktor setzten
//sprite.SetImage(image); darum ist das sinnlos.
int x = 255; //x am Anfang auf volle Helligkeit setzten
while(App.IsOpened())
{
App.Clear();
if(x>0) //x darf nicht kleiner als 0 werden weil es sonst wieder zu blinken beginnt
x--;
sprite.SetColor(sf::Color(x,x,x)); //Die Helligkeit einstellen
App.Draw(sprite); //und zeichnen
App.Display();
}
return 0;
}
|
Dieser Code funktioniert.
Hier wird nur eine Schleife verwendet, was die ganze Sache nicht so kompliziert macht.