Skocz do zawartości

Rysujący się surface


ZyperPL

Rekomendowane odpowiedzi

  • Administratorzy

Dokładnie, rysując na surface o rozmiarze 800x600, maksymalna pozycja na jakiej możesz coś narysować to 799/599 - wiec surface jakby zawsze zaczyna się w 0,0, a dopiero za pomocą draw_surface wybierasz, gdzie go malować.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

GML
surface_set_target(twoj_surf);

//rysujesz teraz w zakresie pozycji x: 0 - szerokosc surface (np. 800), y: 0 - wysokosc surface (np. 900)

surface_reset_target();

 

draw_surface(view_xview[0],view_yview[0], twoj_surf);

 

I tak powinno działać. Wyboraź sobie, że surface to taki sprite w pamięci, po którym rysujesz - jak ustawiasz target, to wszystko jest rysowane względem jego punktu 0,0.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W dokumentacji wyraźnie jest napisane przy screen_refresh:

 

Please realize that, when you draw in another event than the drawing event, you draw simply on the image, not in a view! So the coordinates you use are the same as if there are no views. Be careful when using this technique. Make sure you understand it first and realize that refreshing the screen takes some time.

Tłumacząc na polski:

 

screen_refresh() Odświeża ekran dorysowując rzeczy do istniejącego już na ekranie obrazu (nie wykonuje zdarzeń Draw).

Pamiętaj jednak, że rysując w zdarzeniu innym niż Draw, rysujesz na obrazie ekranu, a nie w widoku! Tak więc podajesz współrzędne na ekranie, a nie względem widoku. Uważaj, używając tej techniki. Pamiętaj też, że odświeżenie ekranu zajmuje trochę czasu i im więcej razy wykonujesz je kodem, tym większa szansa, że gra zacznie zwalniać.

 

 

btw. tak jak mówiłem, wszystko w jednym evencie - nie podałeś tej ważnej rzeczy, że za tym skryptem zaraz jest screen_refresh() - bym od razu wiedział gdzie błąd

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...