Giter Site home page Giter Site logo

Comments (9)

Scrittl avatar Scrittl commented on September 15, 2024

Eigentlich ist das genau das Ziel des Viewports.
Kurz gesagt soll der Viewport dafür sorgen das alle Geräte/Auflösungen das Spiel anzeigen können.

Die verschiedenen Varianten des Viewports lösen das unterschiedlich. Ich habe mich für den FitViewport entschieden; Der FitViewport sorgt dafür das alles Angezeigt wird ohne das etwas von dem Spiel "zerstört" wird. Es wird also möglichst weit ausgefüllt ohne etwas abzuschneiden oder zu verzerren. Dadurch entstehen Freiräume links/rechts bzw. oben/unten wenn das Display keine 16:9 Auflösung hat.

Andere Varianten wie Stretching würden Grafiken verzerren. (Was ziehmlich unschön aussehen kann wenn man eine 16:9 Textur z.B. auf 4:3 verbiegt.). Alternativ kann auch Maximum höhe bzw. breite erreicht werden indem dafür dann an einer Seite etwas abgeschnitten wird. Was in einem Spiel natürlich auch schlecht wäre.

Die Freiräume selber können wir noch etwas "gestalten" falls dir die derzeitige Optik nur noch nicht ganz gefällt.

from haw-se2-projecthorse.

PhilippGrulich avatar PhilippGrulich commented on September 15, 2024

Also das mit den verschieden Viewports ist mir schon klar:)
Der FitViewport macht ja auf jeden Fall auch Sinn. Aber momentan haben wir aber in jedem Emulator die Ränder an der Seite. Von 16:9 auf 4:3 macht natürlich kein sinn aber wenn nur kleine Unterschiede sind kann man das ja vielleicht ausgleichen. Gerade da ich auch noch keine App gesehen habe die das Problem hatte. Aber ich weiß jetzt ja auch nicht wie aufwendig das genau wäre... ;)

from haw-se2-projecthorse.

Scrittl avatar Scrittl commented on September 15, 2024

Bitte nochmal testen welche Auflösung libgdx bei dem Emulator erkennt.

Gdx.graphics.getWidth();
Gdx.graphics.getHeigth();

from haw-se2-projecthorse.

vikwin avatar vikwin commented on September 15, 2024

Schaue mir jetzt das Problem genauer an, momentan machen wir nämlich noch keine wirkliche Skalierung

from haw-se2-projecthorse.

Scrittl avatar Scrittl commented on September 15, 2024

Was ist denn wirkliche Skalierung? Wir passen derzeit alles größt möglich in jede Bildschirmauflösung ein, indem wir alles hoch bzw. runter skalieren

from haw-se2-projecthorse.

vikwin avatar vikwin commented on September 15, 2024

Skalierung läuft jetzt vorerst zufriedenstellend, solange keiner auf die Idee kommt in seinem Spiel direkt per LibGDX Aufruf die Displaymaße abzufragen. Dafür hat das Level Interface nämlich die Variablen width und height fest eingebaut, bitte nur diese benutzen und außerdem darauf achten, dass jede Klasse die von Level extended auch einen super() Aufruf im Kontruktor hat. Dann klappt das Scaling auch.

from haw-se2-projecthorse.

Scrittl avatar Scrittl commented on September 15, 2024

Ich find die Änderung nicht ganz so Klasse. Ich hatte vorher extra keinen Zugang zu den native Display maßen über die Settings geschaffen weil damit keiner irgendwo etwas zu tun hat. Das Problem ist ja auch nicht hier aufgetreten sondern weil gar nicht erst die SettingsImpl benutzt wurde.

Das Risiko, das jemand irgendwo nur die Methoden anschaut und nun einfach getScreenHeight() benutzt weil er denkt, das ist das was er braucht (weil es genau danach klingt) halte ich für ziehmlich wahrscheinlich.

Eine andere Sache noch. Ist der super()-aufruf nicht eigentlich irrelevant? Wird nicht immer super() implizit aufgerufen? Oder gibt es Fälle indenen jemand das umgehen könnte.

from haw-se2-projecthorse.

vikwin avatar vikwin commented on September 15, 2024

Oh, hatte das implizite super() so gar nicht mehr aufm zettel, hast
natürlich recht. Zu den screensize Methoden würde ich sagen ist es weniger
hilfreich sich über die sinnigkeit der settings methoden Gedanken zu
machen, zumal der Aufruf dieser sowieso nur ein einziges Mal in der
abstrakten Level Klasse passieren soll. Es macht denke ich mehr Sinn ein
Regelwerk für die Implementierung von Levels im Wiki zu erstellen, also
Do's und Dont's
Am 26.09.2014 00:18 schrieb "Lars" [email protected]:

Ich find die Änderung nicht ganz so Klasse. Ich hatte vorher extra keinen
Zugang zu den native Display maßen über die Settings geschaffen weil damit
keiner irgendwo etwas zu tun hat. Das Problem ist ja auch nicht hier
aufgetreten sondern weil gar nicht erst die SettingsImpl benutzt wurde.

Das Risiko, das jemand irgendwo nur die Methoden anschaut und nun einfach
getScreenHeight() benutzt weil er denkt, das ist das was er braucht (weil
es genau danach klingt) halte ich für ziehmlich wahrscheinlich.

Eine andere Sache noch. Ist der super()-aufruf nicht eigentlich
irrelevant? Wird nicht immer super() implizit aufgerufen? Oder gibt es
Fälle indenen jemand das umgehen könnte.


Reply to this email directly or view it on GitHub
#23 (comment)
.

from haw-se2-projecthorse.

vikwin avatar vikwin commented on September 15, 2024

Geschlossen, da der Bug bereits behoben ist und die Skalierung auch im Emulator richtig funktioniert (Ausblenden der Android Steuerelemente).

from haw-se2-projecthorse.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.