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

TalvinEx

Frischling

  • »TalvinEx« ist der Autor dieses Themas

Beiträge: 28

Wohnort: NRW

  • Private Nachricht senden

1

26.07.2016, 19:36

relative Größe von 2D Grafiken in SDL?!

Guten Abend ihr Lieben,

in aktuellen Spielen gibt es immer die Möglichkeit die Auflösung umzustellen und egal wie groß der Bildschirm ist, das Spiel sieht immer einigermaßen aus..
Ich möchte bei meinem nächsten Projekt dem Spieler keine feste Auflösung von z.B 800×600 pixeln vorgeben, sondern ihn selbst entscheiden lassen in welcher größe das Spiel laufen soll und die grafiken sollen natürlich dann trotzdem passen (von mir aus sehen die dann auch mist aus wenn eine sehr große Auflösung gewählt wird).

Das Problem ist halt, dass z.B.,wenn man die grafiken auf 800×600 ausrichtet von der größe, dass die dann für 400×300 viel zu groß wären.
Gibt es da irgendeine Möglichkeit, wie man die Grafiken quasi in relativer Größe zum bildschirm rendern kann, oder muss man für jede größe eigene grafiken erstellen und dann entspr. verzweigen?
Mir würde auch schon ein Stichwort zu der entspr. Technik reichen, weil ich wirklich keine Ahnung hab was ich dafür bei google eingeben soll, kam bis jetzt nur mist raus..

Noch so nebenbei: Benutze C++ und SDL2, falls das weiterhilft.
Ich hoffe ich konnte soweit darstellen was mein Problem ist, wenn es unverständlich ist bitte einfach nachfragen.

Grüße,

Tim
"Gewinner haben keine Angst vor dem Verlieren, nur Verlierer"
(~ein weiser Mann)

2

26.07.2016, 19:43

Skalieren, nennt sich das. §\text{Spritebreite} = \text{Grafikbreite} \cdot \left(\frac{\text{vorgesehene Bildschirmbreite}}{\text{echte Bildschirmbreite}}\right)^{-1}§ (edit: na hoppla....)
Wenn die Grafik dann ab einer gewissen Größe nicht wie gewünscht aussieht, malst du eben eine neue und benutzt die dann stattdessen.
Ansonsten könntest du noch Vektorgrafiken verwenden, die kannst du dann vergrößern oder verkleinern wie du willst.

MfG
Check

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Checkmateing« (26.07.2016, 22:19)


MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

3

26.07.2016, 20:05

§\text{Spritebreite} = \text{Grafikbreite} \cdot \left(\frac{\text{vorgesehene Bildschirmbreite}}{\text{echte Bildschirmbreite}}\right)§

Wenn du es passend skalieren willst, musst du den Kehrbruch nehmen.

§\text{Identische breite} = \text{Grafikbreite} \cdot \left(\frac{\text{echte Bildschirmbreite}}{\text{vorgesehene Bildschirmbreite}}\right)§

TalvinEx

Frischling

  • »TalvinEx« ist der Autor dieses Themas

Beiträge: 28

Wohnort: NRW

  • Private Nachricht senden

4

26.07.2016, 20:10

Ok also für die SDL scheints ne Bibliothek zu geben, die das Skalieren möglich macht.
Worin besteht jetzt der Unterschied von Vektorgrafiken zu "normalen"? Kann man die irgendwie einfacher skalieren?

Danke schonmal für die Antworten bis jetzt
"Gewinner haben keine Angst vor dem Verlieren, nur Verlierer"
(~ein weiser Mann)

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

5

26.07.2016, 20:18

Eine Vektorgrafik besteht nicht wie .jpeg und Co aus Bildpunkten sondern eben Vektoren (Pfaden).
Der Vorteil ist, dass Vektorgrafiken bei Vergrößerung nicht unter der typischen "Verpixelung" leiden, da diese keine typische Auflösung besitzen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

26.07.2016, 20:52

Der Nachteil ist, dass es fast keine vernünftig benutzbare Bibliothek gibt, die die gängigen Vektor-Formate auch wirklich vernünftig rendern kann.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

TalvinEx

Frischling

  • »TalvinEx« ist der Autor dieses Themas

Beiträge: 28

Wohnort: NRW

  • Private Nachricht senden

7

26.07.2016, 21:27

Ok vielen Dank Leute :thumbup:
"Gewinner haben keine Angst vor dem Verlieren, nur Verlierer"
(~ein weiser Mann)

TalvinEx

Frischling

  • »TalvinEx« ist der Autor dieses Themas

Beiträge: 28

Wohnort: NRW

  • Private Nachricht senden

8

28.07.2016, 21:41

Also die entspr. Bibliotek für SDL heisst wohl SDL_gfx, allerdings hab ich jetzt einiges weniger positives darüber gelesen und frage mich ob das wirklich die richtige Lösung ist..

Hat da vielleicht schonmal jemand mit Erfahrungen gemacht und weiss, wie gut die ist? Alternativ scheint OpenGL in Frage zu kommen, das würde ganz gut laufen nehme ich an? Ist aber auch was komplizierter wahrscheinlich, oder?

Was würdet ihr mir empfehlen?
"Gewinner haben keine Angst vor dem Verlieren, nur Verlierer"
(~ein weiser Mann)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

29.07.2016, 07:02

Wieso solltest du OpenGL benutzen, wenn du SDL zum Zeichnen deiner Sprites hast? SDL bietet doch ganz sicher eine ganz simple Möglichkeit an, um Sprites zu skalieren.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

29.07.2016, 11:04

SDL bietet doch ganz sicher eine ganz simple Möglichkeit an, um Sprites zu skalieren.

Nein, nicht wirklich. SDL bietet so gut wie nichts Nützliches für Rendering.

Werbeanzeige