Skocz do zawartości

Skalowanie obrazka i dzielenie tekstu


Rekomendowane odpowiedzi

Mam dwa pytania:

1)Jak wyskalować już w samej grze obrazek, do rozdzielczości monitoru? Mam grę w 1280x720, a obrazek(którym jest tło) w 1920x1080, żeby się lepiej wpasowało do każdego monitora, z tym, że jak go zeskalować ładnie?

2)Jak zrobić automatyczne dzielenie tekstu, bez wpisywania cały czas w nim "#"?

Odnośnik do komentarza
Udostępnij na innych stronach

1. Nie wiem o co chodzi jak zmniejszasz to nie powinno być zbytniej utraty jakości, po prostu algorytm usunie sobie kilka pixeli. :)

 

2. jest chyba taka funkcja jak draw_text_ext co do parametrów przyjmuje ona 2 parametry więcej niż zwykły draw text czyli 5, czwarty parametr odpowiada za odległości między liniami, a 5 to maksymalna szerokość linii, zresztą jak wpiszesz w help to Ci znajdzie.

Odnośnik do komentarza
Udostępnij na innych stronach

1) Czyli grę odpalasz tylko w fullscreenie?

2) Musisz się pobawić z display_get_width() albo room_width albo view_wview (zależy jak ta twoja gra wygląda)

oraz string_width i string_insert lub string_replace. Podziel sobie ten tekst odpowiednio na linijki, uważając na to żeby nie dzielić słowa na pół (znak # wstawiaj zamiast spacji najbliżej krawędzi ekranu).

Odnośnik do komentarza
Udostępnij na innych stronach

1) Tak, tylko w fullscreenie.

@Lechu4444, jak zmniejszam, nie, ale jak powiększam to tak :P Ogólnie obrazki są dobrze rozciągane z 1280x720, ale tło tak średnio, więc chcę, żeby ono oddzielnie było dopasowywane do rozdzielczości ekranu.

2)Właśnie mi chodzi o to, żeby nie używać w ogóle #, zobaczę potem to draw_text_ext.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem co oferuje draw_text_ext, ale z moją metodą chodziło mi o to, żeby znaki # automatycznie wstawiały się do określonego stringa w odpowiednich miejscach :P

Można łatwo sobie machnąć taki skrypt.

 

A co do tła to może rysuje je na drugim view i odpowiednio wtedy go wyskaluj.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem co oferuje draw_text_ext, ale z moją metodą chodziło mi o to, żeby znaki # automatycznie wstawiały się do określonego stringa w odpowiednich miejscach :P

Można łatwo sobie machnąć taki skrypt.

 

Nie ma potrzeby samodzielnego łamania linii, funkcja draw_text_ext robi to za ciebie.

 

This function will draw text in a similar way to draw_text only now you can set the space between each line of text (should the text occupy more than one line) and limit the width of the string per line so that should any line exceed this value, GameMaker: Studio will automatically split the text to the next line. A value of -1 for either of these arguments will result in the default spacing being used.

 

Co do rysowania tła - jest to background czy sprite?

 

Co do dopasowywania się tła (i nie tylko) do rozdzielczości ekranu, polecam powierzchnie (surface). Ja to robię trochę innym sposobem, bo prawie zawsze korzystam z widoków (view). Rysując tło, dopasowywuje się ono do wielkości widoku - a wielkość widoku, jego zakres i przesunięcie dopasowywuje się z kolei do wielkości ekranu. Tło może być ruchome bądź nieruchome względem widoku, może być tilowane lub stanowić po prostu obrazek który wypełnia cały widok.

 

Do tego przydadzą się następujące funkcje

 

display_get_width() i display_get_height(),

(dzieląc jedno przez drugie otrzymujesz ratio ekranu, w większości 16:10 lub 16:9)

 

view_xview i view_yview,

oraz

view_wview i view_hview,

 

a także

 

background_x i background_y

oraz

background_xscale i background_yscale

 

Jeżeli o mnie chodzi, niemal nigdy nie biorę wielkości roomu pod uwagę. Rysuję to co jest w zasięgu view'u.

Mam nadzieję że dobrze zrozumiałem :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

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ę...