Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

23.01.2009, 20:09

Zitat von »"Nexxtron"«

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.