Hallo,
ich arbeite zur Zeit an einem Level-Editor, der mir am Ende ein bischen Arbeit abnehmen soll.
Ich hatte vor, links mit einer View (Breite: 280, Länge: Festerngröße) eine Übersicht zu erstellen, wo ich dann am Ende Buttons etc. reinklatsche, womit ich Werte verändern kann. Quasi alles auf einem Blick.
Rechts (der nicht ausgegraute Bereich) soll dann die "Erstell-Ebene" sein.
So wie es momentan ist, ist es nicht verzerrt und passt alles. Aber die Erstell-Ebene ist mir zu wenig Platz, ich hätte diese gerne breiter, ohne dass am Ende irgendwas verzerrt ist.
Bild:
Zum Skallieren benutze ich ein Script von Rhazul, welches ich hier gefunden habe. Ich habe es ein wenig angepasst, damit es die zweite View auch konfiguriert:
Spoiler anzeigen
Alles anzeigen
Meinen Raum passe ich individuell an, da ich nicht jedes Level in der selben Größe machen möchte - aber immer die selbe View haben will:
Spoiler anzeigen
Alles anzeigen
Sehr viel Variablen-Mischmasch, ich hoffe man kann sich darin einigermaßen zurechtfinden.
Hat jemand eine Idee, wo ich ansetzen soll? Ich habe schon ein wenig rumgetestet, aber jedes Mal verzerrt und die Größe ist so geblieben.
----
Problem gelöst.
Ich hatte beim Testen eine Sache außenvor gelassen, nun klappt alles.
Hier mal das aktuallisierte Script:
Spoiler anzeigen
Alles anzeigen
Das ist mit Sicherheit nicht die beste Lösung, aber für mein Projekt angepasst klappt alles so wie ich es haben möchte.
Den 2. Teil des Scripts, mit ww_after = 672 und den Raum habe ich drin, da ich die Fenstergröße auch wieder zurücksetzen möchte, wenn ich in einem kleineren Raum komme (in diesem Falle das Menü)
ich arbeite zur Zeit an einem Level-Editor, der mir am Ende ein bischen Arbeit abnehmen soll.
Ich hatte vor, links mit einer View (Breite: 280, Länge: Festerngröße) eine Übersicht zu erstellen, wo ich dann am Ende Buttons etc. reinklatsche, womit ich Werte verändern kann. Quasi alles auf einem Blick.
Rechts (der nicht ausgegraute Bereich) soll dann die "Erstell-Ebene" sein.
So wie es momentan ist, ist es nicht verzerrt und passt alles. Aber die Erstell-Ebene ist mir zu wenig Platz, ich hätte diese gerne breiter, ohne dass am Ende irgendwas verzerrt ist.
Bild:
Zum Skallieren benutze ich ein Script von Rhazul, welches ich hier gefunden habe. Ich habe es ein wenig angepasst, damit es die zweite View auch konfiguriert:
GML-Quellcode
- ///scr_scale(view, zoom, extra-width) by Rhazul
- if (view_wview[argument0] != window_get_width() || view_hview[argument0] != window_get_height()) {
- var ww = window_get_width();
- var hh = window_get_height();
- var xx = window_get_x();
- var yy = window_get_y();
- display_reset( 0 , true);
- window_set_rectangle(xx, yy, ww, hh);
- surface_resize(application_surface, ww, hh)
- view_wview[argument0] = (ww-argument2)/argument1;
- view_hview[argument0] = hh/argument1;
- view_wport[argument0] = ww-argument2;
- view_hport[argument0] = hh;
- //Extra-View <- Hab ich dazueditiert
- view_wview[1] = argument2/argument1;
- view_hview[1] = hh/argument1;
- view_wport[1] = argument2;
- view_hport[1] = hh;
- display_set_gui_size(ww, hh);
- }
Meinen Raum passe ich individuell an, da ich nicht jedes Level in der selben Größe machen möchte - aber immer die selbe View haben will:
GML-Quellcode
- /*
- Die wichtigsten Variablen:
- global.guiedit: 280 (Die Width des linken Bereichs)
- global.h: 1960
- global.w: 1120
- global.vxv: 0
- global.vyv: 0
- global.vwv: 720
- global.vhv: 1280
- global.vxp: 0
- global.vyp: 0
- global.vwp: 720
- global.vhp: 1280
- */
- room_set_height(rm_create, global.h);
- room_set_width(rm_create, global.w + global.guiedit);
- room_set_background_colour(rm_create, c_white, 1);
- room_set_background(rm_create, 0, 1, 0, back_grid, 0, 0, 1, 1, 0, 0, 1);
- room_tile_add_ext(rm_create, tile_editlayer, 0, 0, global.guiedit, 1, 0, 0, -5, 1, global.h, 1);
- room_set_view_enabled(rm_create, 1);
- room_set_view(rm_create, 0, 1, global.vxv + global.guiedit, global.vyv, global.vwv - global.guiedit, global.vhv, global.vxp + global.guiedit, global.vyp, global.vwp - global.guiedit, global.vhp, 140, 140, 140, 140, objView);
- room_set_view(rm_create, 1, 1, 0, 0, global.guiedit, global.vhv, 0, 0, global.guiedit, global.vhp, 0, 0, 0, 0, -1);
- room_goto(rm_create);
Sehr viel Variablen-Mischmasch, ich hoffe man kann sich darin einigermaßen zurechtfinden.
Hat jemand eine Idee, wo ich ansetzen soll? Ich habe schon ein wenig rumgetestet, aber jedes Mal verzerrt und die Größe ist so geblieben.
----
Problem gelöst.
Ich hatte beim Testen eine Sache außenvor gelassen, nun klappt alles.
Hier mal das aktuallisierte Script:
GML-Quellcode
- ///scr_scale(view, zoom, extra-width, room) by Rhazul
- if (view_wview[argument0] != window_get_width() || view_hview[argument0] != window_get_height()) {
- var ww = window_get_width();
- var hh = window_get_height();
- var xx = window_get_x();
- var yy = window_get_y();
- display_reset( 0 , true);
- if (room == argument3) {
- window_set_size(ww + argument2, hh);
- //window_set_rectangle(xx, yy, ww, hh);
- surface_resize(application_surface, ww + argument2, hh)
- view_wview[argument0] = ww/argument1;
- view_hview[argument0] = hh/argument1;
- view_wport[argument0] = ww;
- view_hport[argument0] = hh;
- //Extra-View
- view_wview[1] = argument2/argument1;
- view_hview[1] = hh/argument1;
- view_wport[1] = argument2;
- view_hport[1] = hh;
- display_set_gui_size(ww + argument2, hh);
- } else {
- var ww_after = 672;
- window_set_size(ww_after, hh);
- //window_set_rectangle(xx, yy, ww, hh);
- surface_resize(application_surface, ww_after, hh)
- view_wview[argument0] = ww_after/argument1;
- view_hview[argument0] = hh/argument1;
- view_wport[argument0] = ww_after;
- view_hport[argument0] = hh;
- display_set_gui_size(ww_after, hh);
- }
- }
Das ist mit Sicherheit nicht die beste Lösung, aber für mein Projekt angepasst klappt alles so wie ich es haben möchte.
Den 2. Teil des Scripts, mit ww_after = 672 und den Raum habe ich drin, da ich die Fenstergröße auch wieder zurücksetzen möchte, wenn ich in einem kleineren Raum komme (in diesem Falle das Menü)
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von icqgamer ()