Guten Abend meine Herren,
erneut komme ich mit einem Problem angetanzt:
Da mein Spiel ausschließlich im Vollbildmodus stattfinden soll, ich aber verzerrte Pixel vermeiden möchte, möchte ich möchte die Größe meines Views (bzw. Raums im Hauptmenü) an die Auflösung des Bildschirms anpassen.
Das mache ich, indem ich eine Mindest- und eine Maximalgröße sowie einen Skalierungsfaktor festlege. Außerdem lege ich fest, dass das Viewseitenverhältnis 3:2 sein soll. Ist das Seitenverhältnis des Computerbildschirms nun breiter als 3:2, zum Beispiel 1366x768, teile ich die Höhe des Bildschirms zuerst durch 1 und frage ab, ob das Ergebnis in meinem festgelegten Maximal-/Minimalbereich liegt. Wenn nicht, teile ich es durch zwei und frage erneut ab; wenn es da auch nicht reinpasst, teile ich die Höhe durch 3 usw. Ist das Seitenverhältnis schmaler als 3:2, also z.B. 1024x768, mache ich dasselbe mit der Breite des Bildschrims. So bestimme ich die Idealgröße für mein View. Gecodet sieht das so aus:
Spoiler anzeigen
Am Ende stehe ich nun also mit drei Variablen da: der Breite (width), der Höhe (height), und dem Skalierungsfaktor (scale).
Und die berechnet er auch genauso, wie ich es von ihm will. Mein Problem liegt nur dabei, die Viewgröße auch dementsprechend anzupassen! Ich habe alle möglichen Befehle versucht, aber ich bekomme es einfach beim besten Willen nicht hin!
Ich hoffe, ihr könnt mir helfen, GM-D!
erneut komme ich mit einem Problem angetanzt:
Da mein Spiel ausschließlich im Vollbildmodus stattfinden soll, ich aber verzerrte Pixel vermeiden möchte, möchte ich möchte die Größe meines Views (bzw. Raums im Hauptmenü) an die Auflösung des Bildschirms anpassen.
Das mache ich, indem ich eine Mindest- und eine Maximalgröße sowie einen Skalierungsfaktor festlege. Außerdem lege ich fest, dass das Viewseitenverhältnis 3:2 sein soll. Ist das Seitenverhältnis des Computerbildschirms nun breiter als 3:2, zum Beispiel 1366x768, teile ich die Höhe des Bildschirms zuerst durch 1 und frage ab, ob das Ergebnis in meinem festgelegten Maximal-/Minimalbereich liegt. Wenn nicht, teile ich es durch zwei und frage erneut ab; wenn es da auch nicht reinpasst, teile ich die Höhe durch 3 usw. Ist das Seitenverhältnis schmaler als 3:2, also z.B. 1024x768, mache ich dasselbe mit der Breite des Bildschrims. So bestimme ich die Idealgröße für mein View. Gecodet sieht das so aus:
GML-Quellcode
- //structure: resolution_adapt(relw,relh,maxw,minw,maxscale);{
- var relw, relh, maxw, maxh, minw, minh, maxscale, disw, dish, scaletest, width, height, scale;relw=argument0;relh=argument1;maxw=argument2;maxh=maxw/relw*relh;minw=argument3;minh=minw/relw*relh;maxscale=argument4;disw=display_get_width();dish=display_get_height();scaletest=1;width=576;height=384;scale=1;
- repeat (maxscale)
- {if (disw/dish>=relw/relh) if (dish/scaletest>=minh && dish/scaletest<=maxh) { width=height/relh*relw; scale=scaletest; height=dish/scaletest; }
- if (disw/dish<relw/relh) if (disw/scaletest>=minw && disw/scaletest<=maxw) { width=disw/scaletest; height=width/relw*relh; scale=scaletest; }
- scaletest+=1;}
- }
Am Ende stehe ich nun also mit drei Variablen da: der Breite (width), der Höhe (height), und dem Skalierungsfaktor (scale).
Und die berechnet er auch genauso, wie ich es von ihm will. Mein Problem liegt nur dabei, die Viewgröße auch dementsprechend anzupassen! Ich habe alle möglichen Befehle versucht, aber ich bekomme es einfach beim besten Willen nicht hin!

Ich hoffe, ihr könnt mir helfen, GM-D!