![](https://frakkle.com/wp-content/uploads/2024/06/Screenshot-2024-06-24-124207.png)
Um in einer 2D Ansicht ähnliche Auflösung und Skalierung zu erhalten bei verschiedenen Bildschirmgrößen,
habe ich 4 Funktionen geschrieben wo eine nur ein Element-Pool ist
beim Ersten Initialisieren werden Arrays mit den Original Werten der Bilder gespeichert (hier Banner und Hintergrund)
und eine ID an diese verteilt.
![](https://frakkle.com/wp-content/uploads/2024/06/Initial.png)
Die Haupt Funktion sucht nach einer Änderung in der Auflösung.
![](https://frakkle.com/wp-content/uploads/2024/06/Screensize.png)
Sollte eine Änderung sein, rechnet sie ein Prozent von X und Y (ich arbeite 2D) aus, und befüllt eine Variable damit,
Außerdem, werden die weiteren Funktionen ausgeführt.
![](https://frakkle.com/wp-content/uploads/2024/06/fontSIze.png)
zuerst, den Font Size Rechner, welcher die Schriftgröße für die derzeitige Resolution berechnet,
der Main Element Pool ist der Hub für die Anpassung der Positionen und Initialisierung der Bilder,
![](https://frakkle.com/wp-content/uploads/2024/06/Anpassung.png)
die Variable mit den derzeitigen 1% Werten wird hier reingepasst um mit dieser die Positionierung von Objekten Prozentual zu machen.
alles in der Szene wird hauptsächlich hier angepasst.
![](https://frakkle.com/wp-content/uploads/2024/06/DIscord.png)
Auf unserem Discord ist jetzt auch ein Raum für Diskussionen im Bereich Game Development, joine gerne bei Ideen und Kritik.
func breakDownDisplayInitial(InputImage, ID):
var tempX = (InputImage.size.x / DisplayServer.window_get_size().x) * 100
var tempY = (InputImage.size.y / DisplayServer.window_get_size().y) * 100
var tempSizeX = InputImage.size.x
var tempSizeY = InputImage.size.y
SizeNumbers.resize(ID + 1)
SizeNumbers[ID] = Vector2(tempSizeX,tempSizeY)
SizesArrayProzent.resize(ID + 1)
SizesArrayProzent[ID] = Vector2(tempX, tempY)
func _checkForScreensize():
if screenSizeX != DisplayServer.window_get_size().x || screenSizeY != DisplayServer.window_get_size().y:
if screenSizeX != DisplayServer.window_get_size().x:
screenSizeX = DisplayServer.window_get_size().x
onePercentX = screenSizeX / 100
if screenSizeY != DisplayServer.window_get_size().y:
screenSizeY = DisplayServer.window_get_size().y
onePercentY = screenSizeY / 100
onePercentVector = Vector2(onePercentX, onePercentY)
_fontSizeRechner()
_MainElementePool(onePercentVector)
func _fontSizeRechner():
var tempFontSize: float = DisplayServer.window_get_size().x / REFDISPLAYWIDTH
HeaderText = HEADER * tempFontSize
VarriationHeaderText = VHEADER * tempFontSize
ContentText = CTEXT * tempFontSize
VarriationContentText = VCTEXT * tempFontSize
func _MainElementePool(onePercentXY):
$Shop_Overlay/BG.size.x = (SizesArrayProzent[1].x / 100) * DisplayServer.window_get_size().x
$Shop_Overlay/BG.size.y = (SizesArrayProzent[1].y / 100) * DisplayServer.window_get_size().y
$Shop_Overlay/BannerG.position = Vector2(onePercentXY.x * 55, onePercentXY.y * 8)
$Shop_Overlay/BannerG.size.x = (SizesArrayProzent[2].x / 100) * DisplayServer.window_get_size().x
$Shop_Overlay/BannerG.size.y = (SizesArrayProzent[2].y / 100) * DisplayServer.window_get_size().y
$Shop_Overlay/BannerG/LabelInputs.add_theme_font_size_override("font_size", HeaderText)
$"Shop_Overlay/BannerG/InputsContainer/Input 1".add_theme_font_size_override("font_size", ContentText)
$"Shop_Overlay/BannerG/InputsContainer/Input 2".add_theme_font_size_override("font_size", ContentText)
$"Shop_Overlay/BannerG/InputsContainer/Input 3".add_theme_font_size_override("font_size", ContentText)
$"Shop_Overlay/BannerG/InputsContainer/Input 4".add_theme_font_size_override("font_size", ContentText)
$"Shop_Overlay/BannerG/InputsContainer/Input 5".add_theme_font_size_override("font_size", ContentText)
$Shop_Overlay/BannerG/PreiseContainer/PreisWert.add_theme_font_size_override("font_size", ContentText)
$Shop_Overlay/BannerG/PreiseContainer/Preis.add_theme_font_size_override("font_size", VarriationHeaderText)
$Shop_Overlay/BannerM.position = Vector2(onePercentXY.x * 1, onePercentXY.y * 50)
$Shop_Overlay/BannerM.size.x = (SizesArrayProzent[3].x / 100) * DisplayServer.window_get_size().x
$Shop_Overlay/BannerM.size.y = (SizesArrayProzent[3].y / 100) * DisplayServer.window_get_size().y
$Shop_Overlay/BannerM/ItemBeschreibungContainer/Item.add_theme_font_size_override("font_size", VarriationHeaderText)
$Shop_Overlay/BannerM/ItemBeschreibungContainer/ItemRichTextLabel.add_theme_font_size_override("normal_font_size", VarriationContentText)
$Shop_Overlay/BannerS.position = Vector2(onePercentXY.x * 10, onePercentXY.y * 1)
$Shop_Overlay/BannerS.size.x = (SizesArrayProzent[4].x / 100) * DisplayServer.window_get_size().x
$Shop_Overlay/BannerS.size.y = (SizesArrayProzent[4].y / 100) * DisplayServer.window_get_size().y
$Shop_Overlay/BannerS/Shopbeschreibung.add_theme_font_size_override("font_size", VarriationHeaderText)