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

21.10.2014, 13:44

Unterschiedliche Bildschirmgrößen - SDL

Hallo Liebe Spieleprogrammierer

Ich habe heute einem Freund mein kleines SDL-Spiel geschickt und musste feststellen das sein kleinerer Bildschirm das Spiel nicht korrekt anzeigen konnte. Macht auch irgendwie Sinn da ich immoment feste Größen
als Bildgrößen verwende.

Doch wie kann ich dieses Problem umgehen?
Ich hatte mir gedacht das ich es so angehe:

Ich lege feste Werte für die Größe meiner Map fest zb 10 * 10 Blöcke. Dann teille ich meine Auflösung 1680/10 & 1050/10 und erhalte dann 168 * 105 für einen Block.
Das gleiche könnte ich ja auch mit seiner machen 1280/10 * 800/10 = 128 * 80. Das klappt auch alles recht gut. Davon abgesehen, dass es eigentlich eine 16:10 auflösung ist, und ich dies bei 10*10 Blöcken immoment aus einfachheits Gründen nicht berücksichtige.
Nur irgendwie habe ich das Gefühl das es vielleicht einen anderen Weg gibt der mehr sinn macht.

was meint ihr??

Liebe Grüße Urprimat! :ninja:
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

21.10.2014, 13:48

Das hängt wohl mal ganz stark von Deinem Spielprinzip ab, ob es Sinn macht die Größe der Elemente fix zu lassen oder zu ändern, ihre Seitenverhältnisse beizubehalten oder ebenfalls zu ändern, an gewissen Rändern leere Flächen mit reinen Füllgrafiken zu verschönern oder Teile des Spielfelds nicht mehr anzuzeigen. Es gibt da keine generelle Lösung, die für alle Spiele gleichermaßen sinnvoll ist.
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]

3

21.10.2014, 13:53

Hmm

Das Spiel was ich erwähnte ist ein Jump & Run Spiel mit keiner Camera!
Es bewegt sich also nur der Spieler und die Map ist die ganze Zeit sichtbar.
bei meinem Freund sieht man aber nur die hälfte der Map da seine Auflösung geringer ist.

Aber wenn du meinst es gibt keine generelle Lösung dann werde ich nach diesem Prinzip arbeiten. Es Funzt ja schon, ich dachte nur vielleicht gibt es bessere Lösungen.

Danke =)

Mfg Urprimat :ninja:
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

21.10.2014, 14:00

Na du hast aktuell offenbar eine sehr schlechte Lösung gewählt. Sinnvoll wäre wohl das Spiel so runter zu skalieren, dass es überhaupt komplett angezeigt wird. Die dabei links/rechts oder oben/unten entstehenden Lücken kannst Du dann wie gesagt ja mit irgendwelchen Schmuck-Grafiken (also ohne Funktion) aufzufüllen.
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]

5

21.10.2014, 14:07

Moment das verstehe ich jetzt nicht.

tue ich das nicht bereits??

durch das teilen der aktuellen Auflösung des jeweiligen Bildschirmes mit den den Blöcken der Map (10*10) ergibt sich doch die Blockgröße (168*105 oder 128 *80) die zu verwenden ist. Und somit habe ich keinen Raum übrig den ich füllen müsste oder wo ist gerade mein Denkfehler?!
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

6

21.10.2014, 14:12

Nein.
Derzeit achtest du nicht auf das Seitenverhältnis der Spielelemente, wodurch es zu Streckungen/Stauchungen kommen kann, wenn es bei anderen Seitenverhältnissen gespielt wird.
Was du machen solltest, wäre anhand deines Zielseitenverhältnisses (1:1? 16:10?) zu gucken, an welchen Rändern du Füllgrafiken einfügen musst. Ist dein Zielseitenverhältnis breiter als das des Spielers, muss ober- und unterhalb etwas eingefügt werden, ist das Seitenverhältnis des Bildschirms breiter als das Zielseitenverhältnis, müssen an den seitlichen Rändern zusätzliche Dinge dargestellt werden.
Der Spielinhalt wird dann skaliert und entsprechend der vorherigen Prüfung verschoben dargestellt.

Ergänzend zu BlueCobolds Antwort
Je nach Map muss es nicht unbedingt nur reine "Dekoration" sein. Wenn man an den Seiten Wand und Boden sieht, könnte man die entsprechenden Seiten mit noch mehr Wand oder Boden fortsetzen, solange das das Verhalten des Spiels nicht beeinflusst. Es dürfte also nicht anhand der Bildschirmränder auf Kollisionen geprüft werden, sondern anhand entsprechender Wand-Blöcke.
Aber ansonsten hat BlueCobold ja schon geschrieben, was gemacht werden könnte.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

7

21.10.2014, 14:22

Ahhhh =)
jetzt verstehe ich was gemeint ist.


vielen Dank =)

Mfg Urprimat
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

21.10.2014, 14:34

Je nach Map muss es nicht unbedingt nur reine "Dekoration" sein. Wenn man an den Seiten Wand und Boden sieht, könnte man die entsprechenden Seiten mit noch mehr Wand oder Boden fortsetzen, solange das das Verhalten des Spiels nicht beeinflusst.
Der Die Sätze stehen im Widerspruch zueinander. Solche fortgesetzten Wände sind nichts weiter als reine Dekoration.
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]

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

9

21.10.2014, 15:29

Vielleicht habe ich deine Aussage auch nicht richtig verstanden. Unter "Schmuckgrafiken" hätte ich bspw. einen Rahmen verstanden, der gänzlich unabhängig vom Spielinhalt drumherum gezeichnet wird, nicht aber ein Fortsetzen des Spielinhalts.
Mit "reiner Dekoration" meinte ich eben solche Rahmen, die kein (wenn auch nicht relevanter) Spielinhalt sind. Aber ja, ich hätte es besser formulieren können...
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

10

21.10.2014, 15:46

Du kannst auch die Bildschirmauflösung ändern. In der WinApi gibt es glaube ich die Funktion ChangeDisplayMode (oder so ähnlich). Der Vorteil ist, das dann bei Bedarf automatisch schwarze Ränder sind, sodass das Seitenverhältnis passt.

Werbeanzeige