H2S04 Opublikowano 18 Czerwca 2017 Udostępnij Opublikowano 18 Czerwca 2017 Witam. Kupiłem GMS2 i jest tam nowy system kamery... Nie ma już viewów, tzn są ale nie ma już funkcji view_xview,yview,wview,hwiev... I teraz moje pytanie... Jak teraz zaprogramować dezaktywację regionalną? Muszę to zrobić, bo mam mapę całą w obiektach (Podziemia, które można kopać). Mam już upatrzony w necie system kamery, dzięki której mogę przybliżać i oddalać kamerę, i teraz potrzeba mi dezaktywować obiekty, które są poza kamerą... Mam mapę 9984x9984 pełną czarnych kratek 64x64, jest ich od cholery przez co nie jestem w stanie uruchomić gry... Objekt "o_Cam" Create: GML /// @description Insert description here // You can write your code in this editor camspeed = 30; //Build a camera at (0,0), with size 640x480, 0 degrees of angle, no target instance, instant-jupming hspeed and vspeed, with a 32 pixel border camera = camera_create_view(4992, 4992, 1920, 1080, 0, self, 30, 30, 1920, 1080); view_set_camera(0, camera); zoom_level = 1; //Get the starting view size to be used for interpolation later default_zoom_width = camera_get_view_width(view_camera[0]); default_zoom_height = camera_get_view_height(view_camera[0]); global.buildqueue = 0; depth = -100; Step: GML /// @description Insert description here // You can write your code in this editor if keyboard_check(vk_escape){ game_end(); } if keyboard_check(ord("W")){ y -= camspeed; } if keyboard_check(ord("S")){ y += camspeed } if keyboard_check(ord("A")){ x -= camspeed; } if keyboard_check(ord("D")){ x += camspeed; } if keyboard_check_pressed(ord("R")){ person = instance_create_layer(mouse_x,mouse_y,"Instances",o_Person); person.sex = choose("Man","Woman"); person.FatherNational = choose("Russian","English","Polish"); person.MotherNational = choose("Russian","English","Polish","German"); } //Move the zoom level based on mouse scrolling. Clamp the value so stuff doesn't get too silly. zoom_level = clamp(zoom_level + (((mouse_wheel_down() - mouse_wheel_up())) * 0.1), 0.1, 5); //Get current size var view_w = camera_get_view_width(view_camera[0]); var view_h = camera_get_view_height(view_camera[0]); //Set the rate of interpolation var rate = 0.2; //Get new sizes by interpolating current and target zoomed size var new_w = lerp(view_w, zoom_level * default_zoom_width, rate); var new_h = lerp(view_h, zoom_level * default_zoom_height, rate); //Apply the new size camera_set_view_size(view_camera[0], new_w, new_h); //Get the shift necessary to re-align the view. var shift_x = camera_get_view_x(view_camera[0]) - (new_w - view_w) * 0.5; var shift_y = camera_get_view_y(view_camera[0]) - (new_h - view_h) * 0.5; //Update the view position camera_set_view_pos(view_camera[0],shift_x, shift_y); camera_set_view_pos(camera, clamp( camera_get_view_x(camera), 0, room_width - camera_get_view_width(camera) ), clamp( camera_get_view_y(camera), 0, room_height - camera_get_view_height(camera) )); var xx, yy; if mouse_check_button(mb_middle){ xx = mouse_x; yy = mouse_y; x = xx; y = yy; } instance_deactivate_region(view_xport[0] - 128, view_yport - 128, view_wport[0] + 256, view_hport[0] + 256 , false,true); instance_activate_region(view_xport[0] - 64, view_yport - 64, view_wport[0] + 128, view_hport[0] + 128, false); Room Start: GML /// @description Insert description here // You can write your code in this editor //Enable the use of views view_enabled = true; //Make view 0 visible view_set_visible(0, true); //Set the port bounds of view 0 to 640x480 view_set_wport(0, 1920); view_set_hport(0, 1080); window_set_rectangle((display_get_width() - view_wport[0]) * 0.5, (display_get_height() - view_hport[0]) * 0.5, view_wport[0], view_hport[0]); surface_resize(application_surface,view_wport[0],view_hport[0]); window_set_fullscreen(true); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się