ich würde es so machen dass ich wie bei einer animation(mehrere Bilder)
dass ich da nur noch 10% oder so anzeige aber immer wenn ichs mit paar rechnungen probier gehts nie..es gibt ja ne funtion in sfml aber ich weiss nicht wie ich mit der umgehen soll.....
hier:
|
C-/C++-Quelltext
|
1
2
3
|
sf::IntRect Rect(int Left, int Top, int Bottom, int Right);
SpriteAnimation.SetSubRect(Rect);
|
Edit: TrikkieMikkie is ja fast des gleiche Prinzip oder?
Du musst bei den Parametern immer nur die Werte ändern. 1 steht für ein Pixel.
Somit kannst du das folgendermaßen lösen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int Lebensenergie = 100;
// Da du nur ein Bild hast und es nur rechts verkürzen willst sind die Left und Top Parameter 0
sf::IntRect Rect(0, 0, Y-Größe deines Lebenbalkens, Lebensenergie)
Sprite.SetSubRect(Rect);
if (Treffer)
{
// Ein Lebenspunkt weniger
Lebensenergie--;
}
// Musst aufpassen: Die Lebensenergie entspricht in dem Fall auch die größe deines Sprites. Musst eben verhältnissmäßig für dein Sprite umrechnen...
|
Wie du siehst relativ einfach...
Dazu brauchst du natürlich 2 Images. Eins wo den Rahmen darstellt und eins wo die Lebensfüllung darstellt.