[Monkey] Auflösungen und Scalierung
Übersicht

![]() |
DottakopfBetreff: Auflösungen und Scalierung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Blitzer und Monkeys ![]() ich würde gerne eine Worte zu den verschiednen(?) herangehensweisen zum "Auflösungsunabhängigen" proggen verlieren. Gerne genauer zum Android Target. Wie scalliert Ihr die Grafiken für die verschiedenen Auflösungen der Devices ? Mit den Matrix befehlen oder scalliert Ihr die Grafiken wirklich passend zu den Auflösungen ? Was gibts da performance technisch zu beachten. Ich habe bereits gelesen das es sinnvoll ist die Grafiken für Full HD zu erstellen und dann um einen gewissen faktor zu scallieren. Wie würde das als Code form aussehen? oder Manipuliert ihr gleich die ganze Matrix ? Ich poste im Beginners Corner, also bedenkt das ich praktisch 0 erfahrung explizit mit diesem Thema habe ![]() Fertige Lösungen will ich jetzt nicht aber welche Befehle sinnvoll und schnell in der Praxis wären, würde ich mir schon kurz von Leuten mit Erfahrung erklären lassen. Ja.. hm lasst euch aus ![]() Danke Danke ! Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Monkey hab ich noch nie verwendet, aber Java/Android. Was man dort macht, ist dass man eine Art Mipmap (nur in gröberen Stufen) macht, wo man das Bild für verschiedene Auflösungen grob vorskaliert. Diese Bilder erzeugt man z.B. mit Gimp, wo es schöne Skalierungsalgos gibt, wo man z.B. selbst wählen kann, ob man Linear, Kubisch oder Nearest Neighbor verwendet. So hat man dann Bilder für niedrige, mittlere, hohe, sehr hohe und abartige Auflösungen. Im Programm wählt man (bzw. wählt das Android SDK für einen) das Bild, welches sich am nächsten zur Auflösung des Geräts befindet, und skaliert von dort den Rest. So kriegt man noch immer sehr schön skalierte Bilder, kann aber absolut jede Auflösung bedienen, auch wenn man für genau diese Auflösung kein Bild hat.
Die Matrix manipulieren klingt hier nach dem passenden Weg alles zu skalieren. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich mache es mit Skalierung. Innerhalb des Spieles arbeite ich immer mit der festen Auflösung von z.B. 500x300pix. Im OnRender() wird mit Scale die Darstellung auf das reale Display skaliert. Die realen Mausdaten rechne ich umgekehrt in meine 500x300 Auflösung zurück.
Beispiel: Code: [AUSKLAPPEN] Strict
Import mojo Class Game Extends App Global ScaleX#, ScaleY#, MausX%,MausY% Method OnCreate%() SetUpdateRate 60 ScaleX=DeviceWidth()/500.0 ScaleY=DeviceHeight()/300.0 Return 0 End Method OnUpdate%() If KeyHit(KEY_ESCAPE) OnBack() EchteMaus Return 0 End Method EchteMaus:Void() MausY=(TouchY()/ScaleY) MausX=(TouchX()/ScaleX) End Method OnRender%() Scale ScaleX,ScaleY Cls 255,255,0 SetColor 255,0,0 DrawRect 4,4,490,290 SetColor 255,255,0 DrawRect 6,6,486,286 SetColor 255,255,255 DrawText "X=" + MausX + " Y=" + MausY,200,130 Return 0 End Method OnBack%() EndApp() Return 0 End End Function Main%() New Game Return 0 End |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey danke für eure tolle Hilfe!
die Grafiken in verschiedenen Grundauflösungen zu erstellen und am besten(Idialfall) mit faktor 0 zu skallieren gefällt mich schon.. ohne das ich es probiert habe. Somit könnte man doch auch in der OnCreate die Grafiken laden, Skallieren und erneut in einem Neuen Handle speichern. Oder geht das nicht so wie ich mir das vorstelle.(Framesets..) Die Lösung von Midimaster erscheint mir logisch und relativ einfach, Danke ! wenn ich Grafiken scalliere bekomme ich dann als Return die Scallierten grafiken Größen oder immer nur die der Original Datei ? Meine sorge ist das ich mit Gui elementen Probleme bekommen könnte, aber ich denke das werde ich merken sobald ich etwas herumspiele. Ich denke wenn ich statt HtML das GFL Target wähle kann ich auch ich auch leicht verschiedene Auflösungen simulieren ? Ja erstmal danke ![]() |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auf den meisten Targets (allen, die über die Graka rendern und nicht über die CPU) wirst du quasi keine Geschwindigkeitsvorteile durch das Vorskalieren kriegen. Auf der Grafikkarte kostet sowas quasi gar nichts. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also wollte mich nochmal bedanken, hatte jetzt mal zeit etwas herumzuspielen und habe mich jetzt dafür entschieden mit einer internen Auflösung von 1280x720 zu arbeiten.
ab HTC ONe Mini und ab Samsung Galaxy S3 sind das die kleinsten Auflösungen. Mein Gedanke ist eine 1zu1 Skallierung ist Idial und eine Scallierung auf Full HD sieht auch noch gut aus. Toll finde ich das auch die Offset Positionierung der Bilder zur neuen Auflösung passt. ![]() Zum Code habe ich mit den Matrix befehlen gearbeitet.. Gibt dazu ein tolles Youtube Beispiel https://www.youtube.com/watch?v=wpIxkUfXPNg Code: [AUSKLAPPEN] Method OnCreate() SetUpdateRate(60) DeviceScaleX = (DeviceWidth() / 1280.0) DeviceScaleY = (DeviceHeight() / 720.0) End ...... ... Method OnRender() Cls(128, 128, 128) PushMatrix() Scale DeviceScaleX, DeviceScaleY DrawImage(imgX, 320, 240, frameX) DrawImage(imgY, 280, 650, frameY) PopMatrix() DrawText "Scalex: " + DeviceScaleX, 0, 0 DrawText "Scaley: " + DeviceScaleY, 0, 20 ... |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst auch das HTML Target mit einer vorher genauestgelegten Auflösung starten. Dazu änderst Du nachdem das Projekt mind. einmal bereits in HTML erstellt worden ist diese Datei in den build-Ordnern deines Projektes:
Zitat: ...
<body> <canvas id="GameCanvas" width=640 height=480 tabindex=1></canvas><br> <textarea id="GameConsole" style="width:640px;height:240px;border:0;padding:0;margin:0" readonly></textarea><br> ... Einfach die Werte width und height anpassen |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group