Deaktivieren Sie die Skalierungsfunktion auf der Registerkarte "Hintergründe" in der Karte. Wenn es nicht maßstabsgetreu erscheint, stellen Sie sicher, dass Ihre Textur für den Hintergrund dieselbe Größe hat wie der Raum / die Karte, in dem Sie sich befinden.
Alternativ können Sie diesen Beitrag hier verwenden , um ein Hintergrundskript zu erstellen, das den Hintergrund mit (hoffentlich) klaren Ergebnissen skaliert.
Hier werden Oberflächen verwendet. Wenn Sie zusätzliche Hilfe benötigen, enthält dieser Beitrag viele Informationen.
BEARBEITEN:
Als ich auf meine Antworten zurückging, stellte ich fest, dass dies nicht auf dem neuesten Stand ist und den Inhalt des Tutorials benötigt. Hier ist es:
SCHRITT 1 : Wählen Sie die gewünschte Skala. Verwenden Sie eine Ansicht für jeden Raum und lassen Sie Port W und Port H entsprechend skalieren. Wenn Sie beispielsweise eine Skala von 2 verwenden würden, würde dies im Raumeditor von GM so aussehen.
Es ist wichtig, dass dies für alle Räume gleich ist. Wenn Sie viele Zimmer haben, ist dies möglicherweise einfacher über den Code *. Ich mache es lieber so, weil dann die Werte nicht konstant sind und ich mehrere verschiedene Skalen unterstützen kann.
SCHRITT 2 : Erstellen Sie drei Skripte, screen_init, screen_begin und screen_end. Hier ist, was in jedem der Skripte steht ...
Zitat aus: screen_init
// screen base(view_wview and view_hview)
screen_x = 0;
screen_y = 0;
screen_w = 320;
screen_h = 240;
screen_scale = 2;
// create a surface for the whole screen to be drawn on
screen = surface_create(screen_w,screen_h);
// this will destroy the screen object if surfaces are not supported on the graphics card, reverting to the viewport method
if screen = -1{instance_destroy();}
Zitat aus: screen_begin
// this draws the surface on the screen
surface_reset_target();
draw_clear(0);
draw_set_blend_mode_ext(bm_one, bm_zero);
draw_surface_stretched(screen,screen_x,screen_y,screen_w*screen_scale,screen_h*screen_scale);
draw_set_blend_mode(bm_normal);
screen_refresh();
Zitat aus: screen_end
// this sets surface 'screen' as the drawing target for everything in the game, so all drawing will be done on this surface and not on the game screen
surface_set_target(screen);
SCHRITT 3 : Jetzt haben wir Skripte, aber wohin gehen sie? Erstellen Sie ein Objekt. Wie obj_screen, objScreen, o_screen oder was auch immer, und gehen Sie wie folgt vor:
- A) Platzieren Sie das screen_initscript im Create-Ereignis.
- B) Platzieren Sie das Skript screen_begin im Ereignis Begin Step.
- C) Platzieren Sie das Skript screen_end im End Step-Ereignis.
Platzieren Sie dieses Objekt im ersten und wichtigsten Raum Ihres Spiels, markieren Sie es als dauerhaft und stellen Sie sicher, dass keine Duplikate davon vorhanden sind.
Sie sind fertig und haben jetzt eine schöne, klare Skalierung = D.