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

Tim Ohliger

Frischling

  • »Tim Ohliger« ist der Autor dieses Themas

Beiträge: 12

Wohnort: Solingen

Beruf: Schüler & Student

  • Private Nachricht senden

1

22.01.2011, 22:29

SFML - Sprites über View

Hallo. ;)

Gibt es eine Möglichkeit Sprites zu zeichnen, die nicht vom View des RenderWindows beeinflusst werden?
Ich möchte nämlich eine Art HUD über der eigentlichen Szene zu zeichen, um z.B. Punkte und sowas anzuzeigen, wenn ich aber View rotiere rotieren sich ja auch die HUD-Elemente mit.

Muss ichs selber schreiben oder kann SFML das schon?

MfG Tim

2

22.01.2011, 22:48

Die SFML verfügt nicht direkt über derartige Funktionen oder Klassen. Aber schau doch mal hier die oberen 3 Projekte an... vielleicht ist was für dich dabei. ;)

Gruß
SaRu_

Tim Ohliger

Frischling

  • »Tim Ohliger« ist der Autor dieses Themas

Beiträge: 12

Wohnort: Solingen

Beruf: Schüler & Student

  • Private Nachricht senden

3

22.01.2011, 23:42

Danke für den Link, aber diese GUIs werden doch wahrscheinlich alle so funktionien, dass sie z.B. Buttons einfach als Sprite zeichnen.
Und diese Sprites werden dann doch abhängig vom View des Fensters sein in dem sie gezeichnet werden oder nicht?

Und 10 GUI libs anzutesten dauert mir zu lang, da kann ichs lieber selber schreiben. :D

Am elegantesten fänd ich wenn ich ein View nur für einen Bereich des Fensters erstellen kann und dann mehrere Views im Fenster hab.

Wenn ich beispielsweise eine Minimap der gesamten Karte machen möchte, sollte diese ja unabhängig von der eigentlichen Spielszene sein, also nicht als Objekt in der Spielwelt zählen sondern egal wie die Sicht des Spielers ist die gleiche Position in Pixeln beibehalten.

Ich seh grad, dass in Version 2 von SFML RenderImages dazu kommen.
Damit scheint sowas zu klappen.
Gibts ne alternative Lösung für 1.6?

MfG Tim

4

23.01.2011, 00:19

Wenn du dem RenderTarget ein View setzt, dann wird alles relativ dazu gerendert...
Die Relation kannst du ändern, indem zu z.B. vor dem Rendern des GUI's die View wieder auf Default setzt.
Damit wird am Anfang alles relativ zu deinem View gezeichnet und dann die GUI wird normal gezeichnet.
Freund: "Ein Leben ohne Kaffee ist unmöglich, aber sinnlos!"
"Wer Angst vor der Dunkelheit hat, hat noch nie gesehen, was das Licht anrichten kann!"

Tim Ohliger

Frischling

  • »Tim Ohliger« ist der Autor dieses Themas

Beiträge: 12

Wohnort: Solingen

Beruf: Schüler & Student

  • Private Nachricht senden

5

23.01.2011, 00:36

Das hört sich super an. :D
Danke, probier ich gleich mal. :)

MfG Tim

Tim Ohliger

Frischling

  • »Tim Ohliger« ist der Autor dieses Themas

Beiträge: 12

Wohnort: Solingen

Beruf: Schüler & Student

  • Private Nachricht senden

6

23.01.2011, 01:40

Jup, klappt perfekt. :)
Und wie ich sehe hab ich genau die zwei Zeilen im Tutorial, die das erwähnen, überlesen. :S

Sry, und vielen Dank nochmal für die Antworten. ;)

MfG Tim

7

23.01.2011, 09:54

Wenn du allerdings den Default View nimmst, sind deine GUI Elemente ja von der Auflösung des Bildschirms abhängig.
Du könntest evtl. auch einfach einen 2. View erstellen, den du dann nicht bewegst und darin dann deine Elemente rendern.

lg chaia

8

23.01.2011, 13:18

Nein das stimmt nicht.
des RenderTargets DefaultView entspricht exakt dem RenderTarget selbst.
Das wird auch benutzt wenn du keinen View benutzt.

BTW: Freut mich das das Funktioniert :)
Freund: "Ein Leben ohne Kaffee ist unmöglich, aber sinnlos!"
"Wer Angst vor der Dunkelheit hat, hat noch nie gesehen, was das Licht anrichten kann!"

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

9

23.01.2011, 13:35

sf::Vector2f sf::RenderWindow::ConvertCoords(unsigned int WindowX,unsigned int WindowY,const View * TargetView = NULL )const
Convert a point in window coordinates into view coordinates.


http://www.sfml-dev.org/documentation/1.…3b473e39b3b9a17
New Project: Operation CityRacer

10

23.01.2011, 15:02

Das kann man auch machen.
Ich mach normalerweise beim Rendern zuerst meinen View setzen und dann vor dem rendern des GUI's setz ich den view wieder auf Default.
Aber natürlich könnte man das auch über ConvertCoords machen :)
Freund: "Ein Leben ohne Kaffee ist unmöglich, aber sinnlos!"
"Wer Angst vor der Dunkelheit hat, hat noch nie gesehen, was das Licht anrichten kann!"

Werbeanzeige

Ähnliche Themen