MaxGaming Opublikowano 21 Października 2015 Udostępnij Opublikowano 21 Października 2015 Czy da się do surface wczytać jakoś to co się aktualnie znajduje w oknie gry? Jest application_surface, ale on dziwnie działa, albo coś źle robię. Bo np. jak wziąłem w celu zdebugowania co jest nie tak. żeby mi rysował w połowie ekranu surface aplikacji to animuje mi to co ma image_speed=0 i w oknie nie animuje mi itp.. Chodzi mi o coś ala screen_save, ale żeby zamiast do pliku zapisać do surface Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 21 Października 2015 Udostępnij Opublikowano 21 Października 2015 możesz skorzystać z application_surface do rysowania na innych surface'ach GML surface_set_target(twoj_surface) draw_surface(application_surface,jakies_x_najlepiej_0,jakies_y_najlepiej_0) surface_reset_target() teraz powinieneś mieć na swoim surface'u narysowane to, co masz na ekranie (a właściwie to, co było narysowane klatkę przedtem) - rzecz w tym, że powinieneś to wywołać w Post Draw Event, wcześniej możesz mieć nie wszystko narysowane Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 22 Października 2015 Autor Udostępnij Opublikowano 22 Października 2015 Użyłem tego w post i wciąż cuda niewidy mi wychodzą :/ Ogółem cel jest taki: robię własny "system" message'y i chce, aby wszystko było nieaktywne podczas wyświetlania wiadomości. Założenia są takie: tworzę surface z tym co aktuualnie widać, deaktywuje wszystkie instancje prócz message'a, następnie wyświetlam surface, nakładam lekkie "przyciemnienie"(rectangle z odpowiednią alpha) i na końcu rysuje message. Wynik: otrzymany surface jest nieco inny od tego który widziałem wcześniej. Mam wrażenie, że 1. nie widać niczego co umieszczam w draw obiektów, 2. nie wiedzieć czemu wszystko co na "ekranie" się nie animuje, w otrzymany surface się animuje. Próba z post-draw nic nie zmieniła, wciąż coś robię nie tak :/ @e: wstępnie wykryłem problem. Wszystko ustępuje gdy zamiast draw_gui wszystko umieszczam w draw. Teraz próbuję dalej zdebugować co jest konkretnie problemem. Podejrzewam że application_surface nie obejmuje tego co jest w draw_gui, ale to muszę jeszcze zweryfikować... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 22 Października 2015 Udostępnij Opublikowano 22 Października 2015 surface_set_target na stałe zmienia target draw'u więc możesz go zmienić na 1 step(lub klatkę jeśli tak zaprogramujesz) aby zapisać wszystko co powinno być na ekranie. Niemniej wtedy na 1 step(lub klatkę jeżeli tak zaprogramujesz) będzie czarny ekran. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 22 Października 2015 Autor Udostępnij Opublikowano 22 Października 2015 Zrobiłem w post draw tak: GML backScreen=surface_create(view_wport[0], view_hport[0]); surface_copy(backScreen, 0, 0, application_surface); i potem go rysuje... Tylko że działa wszystko w porządku o ile nie ma na ekranie obiektów co mają draw_gui. Pomijane jest wszystko z draw gui... Co należy zmienić, żeby obejmowało draw gui? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 24 Października 2015 Udostępnij Opublikowano 24 Października 2015 Może przenieś do post draw GUI? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 24 Października 2015 Autor Udostępnij Opublikowano 24 Października 2015 Ale nie widzę takiego eventu jak post draw gui. W draw gui end nie działa poprawnie, w post draw także :/ @e: W dokumentacji znalazłem teraz, że rzeczywiście post draw nie obejmuje gui. Czyli jak to obejść? Wychodzi na to, że albo muszę kombinować z tą klatką co mówił vader, albo zapisywać do pliku i wczytywać(domyślam się że to skrajnie głupi pomysł)? Źródło: http://docs.yoyogames.com/source/dadiospic...aw%20event.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 25 Października 2015 Udostępnij Opublikowano 25 Października 2015 Tak trudno sprawdzić czy Draw GUI End nie da Ci tego, czego potrzebujesz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 25 Października 2015 Autor Udostępnij Opublikowano 25 Października 2015 Ale nie widzę takiego eventu jak post draw gui. W draw gui end nie działa poprawnie, w post draw także :/ Napisałem przecież, że sprawdziłem i nie działa ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 27 Października 2015 Administratorzy Udostępnij Opublikowano 27 Października 2015 Może powinieneś użyć buforów? Surface ma to do siebie, że po evencie draw karta graficzna może zwolnić pamięć potrzebną do jego obsługi, jeśli akurat jakiś inny program na komputerze potrzebuje tej pamięci. Zainteresuj się buffer_get_surface() buffer_set_surface() Wtedy powinno się dać "zachować" surface z danego momentu. 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ę