nowy_user Opublikowano 16 Czerwca 2017 Udostępnij Opublikowano 16 Czerwca 2017 Witajcie, Jak wiemy w dzisiejszych czasach wszystko musi być smart: smart phone, smart watch, smart dom itd. Niesiony na fali tego trendu chciałbym zastosować funkcję smart draw_text , tzn taką , która sama "domyśliłaby się" , że jeżeli w jednej linijce zostanie osiągnięta określona liczba znaków, lub jeśli dana literka wyjdzie poza linię specjalnego okienka, to przerzuca ostatni wyraz do następnej linii, i kolejne słowa pisze już w następnej linii. Wiecie, coś jak w przygodówkach, gdzie jest dużo dialogów, np. jak w Cinders, okienko z dialogami jest na dole, ale tekst jest tam wyświetlany elegancko i nic nie wychodzi poza ramkę. Podejrzewam, że ani TeeGee , ani inni specjaliści z MoaCube nie siedzieli przy każdym dialogu postaci, zastanawiając się w którym momencie uciąć tekst by przenieść go do następnej linijki, a zamiast tego mieli pewnie elegancki silniczek, kod, który sam się domyślał, i był na pewien sposób inteligentny :) . W ten sposób specjaliści od fabuły mogli się skupić na pisaniu dialogów a nie obliczaniu długości ciągów znaków. Bardzo proszę o poratowanie mnie kodem, który mam użyć, lub skierowaniem mnie na właściwe tory myślenia. Pozdrawiam i życzę szalooonego weekendu :) nowy_user Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 16 Czerwca 2017 Udostępnij Opublikowano 16 Czerwca 2017 Jest taka funkcja, liczy odleglosc w pikselach. draw_text_ext(x, y, string, sep, w); sep ustawiasz na -1 jezeli chcesz podstawowe odleglosci miedzy literami lub na wartosc w pikselach aby zrobic monospace. w ustawiasz na laczna szerokosc tekstu w pikselach. Edit: Jako ciekawostke w np. undertale ręcznie zmieniali linie tekstu. Głównie po to aby zrobić wcięcia poza gwiazdkami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
nowy_user Opublikowano 16 Czerwca 2017 Autor Udostępnij Opublikowano 16 Czerwca 2017 Jest taka funkcja, liczy odleglosc w pikselach. draw_text_ext(x, y, string, sep, w); sep ustawiasz na -1 jezeli chcesz podstawowe odleglosci miedzy literami lub na wartosc w pikselach aby zrobic monospace. w ustawiasz na laczna szerokosc tekstu w pikselach. Edit: Jako ciekawostke w np. undertale ręcznie zmieniali linie tekstu. Głównie po to aby zrobić wcięcia poza gwiazdkami. Rzeczywiście działa, dzięki! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
nowy_user Opublikowano 17 Czerwca 2017 Autor Udostępnij Opublikowano 17 Czerwca 2017 Wybaczcie, że jeden post pod drugim , ale mam problem z tym kodem. Jeśli dany wyraz jest tak długi że sam jeden mieści się w jednej linijce, to niestety wychodzi za ramkę. Czy można zrobić tak, aby skrypt dzielił taki wyraz na dwa mniejsze i drugi z nich napisał od następnej linijki? Albo jeśli się tego nie da, to może dałoby się zmniejszyć czcionkę jeśli taka sytuacja następuje? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 17 Czerwca 2017 Udostępnij Opublikowano 17 Czerwca 2017 To już raczej własne rozwiązanie byś musiał zrobić bo na to gotowca już nie ma. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
nowy_user Opublikowano 17 Czerwca 2017 Autor Udostępnij Opublikowano 17 Czerwca 2017 niestety próbuję użyć też funkcji : GML draw_text_ext_transformed i wygląda na to że niestety ta funkcja nie do końca działa tak jak trzeba. Mogę ustawić w niej transofrmacje wielkości czcionki - i fajnie, ale ta tranfsormowana czcionka działa bardzo dziwnie na zmienną : w The maximum width in pixels of the string before a line break. Niestety wychodzi po za ramkę albo ucina tekst w jej połowie. 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ę