Abend Community,
bei meinem momentanen Projekt "What Would You Do?", zu finden unter den Steam Greenlight Konzepten bin ich auf folgendes Problem gestoßen, welches allerdings nicht Projektbezogen ist, daher die Expertenrunde :
Beim Skalieren im Fullscreenmodus entstehen 1Pixel differenzen auf dem Display, also ein PixelartPixel der bspw. als 3x3 Pixel auf dem Dispay dargestellt wird, wird als 3x4 angezeigt(siehe Screenshots auf Greenlight, Link in meiner Signatur, zB. bei der Palme im Menü oder beim Spielersprite im Spiel). Das Problem steht nur im Fullscreen an, unabhängig ob Fullscale oder Keep Aspect Ratio aktiviert sind, laut meines Teampartners sah alles auf seinem 1080p 19:9 Display in Ordnung aus, ich selber nutze im Moment mein Laptop (Geforce GT 320M, falls das entscheidend ist) mit einer recht ungewöhnlichen Auflösung von 1366x768, da ich im Moment noch im Urlaub bin und schlecht meinen Desktop PC mitnehmen kann, auf dem ich es also auch noch nicht testen konnte. Ich muss also irgendwie hinbekommen, dass das Spiel auf jeder Auflösung ohne Verzerrungen skaliert, dabei würde ich gerne auf die Verwendung von Surfaces verzichten, da mein Spiel bis jetzt ohne diese auskommt, es auf älteren PCs immer wieder Probleme damit gibt und ich persönlich kein Fan dieser bin.
Jetzt zu meinem Script, mit welchem ich das Spiel skaliere, es errechnet die Aspect Ratio des Screens und benutzt diese um die Breite des angezeigten Bereiches zu bestimmen, es bekommt als Argument eine gefixte Viewhöhe übergeben(360 im Intro, 240 im Menü und In-Game). Ich gehe hier von Rundungsfehlern aus, welche ich allerdings nicht beheben konnte:
Alles anzeigen
Und hier noch das Script update_display_size() :
Ich bin für jede Hilfe dankbar, sorry wenn ich was wichtiges vergessem habe, ist schon spät^^
bei meinem momentanen Projekt "What Would You Do?", zu finden unter den Steam Greenlight Konzepten bin ich auf folgendes Problem gestoßen, welches allerdings nicht Projektbezogen ist, daher die Expertenrunde :
Beim Skalieren im Fullscreenmodus entstehen 1Pixel differenzen auf dem Display, also ein PixelartPixel der bspw. als 3x3 Pixel auf dem Dispay dargestellt wird, wird als 3x4 angezeigt(siehe Screenshots auf Greenlight, Link in meiner Signatur, zB. bei der Palme im Menü oder beim Spielersprite im Spiel). Das Problem steht nur im Fullscreen an, unabhängig ob Fullscale oder Keep Aspect Ratio aktiviert sind, laut meines Teampartners sah alles auf seinem 1080p 19:9 Display in Ordnung aus, ich selber nutze im Moment mein Laptop (Geforce GT 320M, falls das entscheidend ist) mit einer recht ungewöhnlichen Auflösung von 1366x768, da ich im Moment noch im Urlaub bin und schlecht meinen Desktop PC mitnehmen kann, auf dem ich es also auch noch nicht testen konnte. Ich muss also irgendwie hinbekommen, dass das Spiel auf jeder Auflösung ohne Verzerrungen skaliert, dabei würde ich gerne auf die Verwendung von Surfaces verzichten, da mein Spiel bis jetzt ohne diese auskommt, es auf älteren PCs immer wieder Probleme damit gibt und ich persönlich kein Fan dieser bin.
Jetzt zu meinem Script, mit welchem ich das Spiel skaliere, es errechnet die Aspect Ratio des Screens und benutzt diese um die Breite des angezeigten Bereiches zu bestimmen, es bekommt als Argument eine gefixte Viewhöhe übergeben(360 im Intro, 240 im Menü und In-Game). Ich gehe hier von Rundungsfehlern aus, welche ich allerdings nicht beheben konnte:
GML-Quellcode
- //scr_advanced_scaling(height)
- var aspect_ratio;
- update_display_size();
- static_height = argument0;
- aspect_ratio = global.ds_width/global.ds_height;
- view_hview = static_height;
- view_hport = static_height;
- view_wview = view_hview*aspect_ratio;
- view_wport = view_hview*aspect_ratio;
- xport = global.ds_width/display_get_gui_width();
- yport = global.ds_height/display_get_gui_height();
- display_set_gui_size(global.ds_width,global.ds_height);
Und hier noch das Script update_display_size() :
Ich bin für jede Hilfe dankbar, sorry wenn ich was wichtiges vergessem habe, ist schon spät^^
132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... 
