Comments (9)
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.
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.
Bitte nochmal testen welche Auflösung libgdx bei dem Emulator erkennt.
Gdx.graphics.getWidth();
Gdx.graphics.getHeigth();
from haw-se2-projecthorse.
Schaue mir jetzt das Problem genauer an, momentan machen wir nämlich noch keine wirkliche Skalierung
from haw-se2-projecthorse.
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.
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.
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.
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.
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)
- Loot Popup Standardgrafiken für UI Elemente
- Loot Gallery Textwrapping
- Raceloot in Parcour auf Standard Loot ändern
- Applerun Spiel Neustart
- Parcour Pferdescaling
- Fehlende Linzenzangaben / Überflüssige Lizenzangaben HOT 10
- Doppeltes Pferd in Pferdegalerie
- Parcour - keine Sprunganimation HOT 5
- AppleRun Tempo der Pferde wird von Neigungssensor übergangen HOT 1
- Parcours: Auswahldialog?
- texturenotfound exception in der lootgalery HOT 2
- Parcours: 20% Hannoveraner Chance HOT 2
- [worldmap] Test und Doku
- Technische Tests
- [applerun] Test und Doku
- [puzzle] Test und Doku HOT 1
- [Menüleiste+Hauptmenü] Test und Doku
- [Lootscreen + Pferdeauswahl] Test und Doku
- [Worldmap] Letzte Stadt wird nicht pro Spielstand gespeichert
- Vereinheitlichung der Score-Anzeige
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from haw-se2-projecthorse.