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

1

30.08.2011, 21:24

FloatRect zu IntRect

Wie kann man FloatRect zu IntRect konvertieren?
Geht es überhaupt?
Benötige das für meine Animation via SetSubrect, der will ja absurderweise ein IntRect und kein FloatRect als Parameter haben.

MfG
Check

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

2

30.08.2011, 21:45

Du könntest ja direkt ein IntRect benutzen.

Ansonsten bekommt man ja über .Bottom/.Top etc. die jeweiligen Werte. Die kannst du zu nem Integer casten, und diese Werte direkt an den Konstruktor von einem IntRect weitergeben.

C-/C++-Quelltext

1
2
3
4
5
sf::Rect<float> xyz;
//Mit Werten befüllen
sf::Sprite abc;
//Ebenfalls Bild laden etc.
abc.SetSubRect(sf::Rect<int>(static_cast<int>(xyz.Left), static_cast<int>(xyz.Top), static_cast<int>(xyz.Right), static_cast<int>(xyz.Bottom)));


Das is wohl nicht die schönste Variante, aber sie sollte funktionieren...
Evtl klappt allerdings auch das:

C-/C++-Quelltext

1
2
3
sf::Rect<float> abc;
//Werte und so reinstopfen
sf::Rect<int> = static_cast<sf::Rect<int>>(abc);
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

3

30.08.2011, 21:52

Nummer 2 klappt nicht, 1 ist vielleicht zu langsam für eine Render-Funktion? D:
Bleibt es denn trotzdem genau wenn ich es gleich mit IntRect mache?

MfG
Check

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

30.08.2011, 22:17

Ich versteh garnicht wieso du überhaupt Floatrect verwendest. Du kannst ja schlecht einen halben Pixel abschneiden.

Es ist nicht wichtig wieviel Code zu sehen ist, sondern was dabei passiert. Die erste Variante ist wohl die schnellste aber auch unübersichtlichste.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

5

31.08.2011, 13:49

Weil ich dividiere und da eine Dezimalzahl mit Nachkommastellen entstehen kann.
Aber ich denke ich nehme nun einfach IntRect. :D

MfG
Check

Werbeanzeige