Jakim Opublikowano 2 Lutego 2006 Udostępnij Opublikowano 2 Lutego 2006 Jak zrobić suwak przewijania tekstu? Używam funkcji draw_text_ext i chciałbym, żeby nie dochodziło do takiej sytuacji: Jak dorobić pasek przewijania? //http://img408.imageshack.us/img408/2033/skrin8yv.gif// Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 3 Lutego 2006 Autor Udostępnij Opublikowano 3 Lutego 2006 Cóż, nikt nie zna odpowiedzi... szkoda. A czy można usuwać wpisy ze stringa? Text1: blablablabla Text2: blablabla Text3: blabla Text4: bla I teraz usunąć wpis "Text1"? Chcę po prostu, żeby tekst nie wychodził za ramkę. Jak ktoś zna praktyczniejsze sposoby - walcie prosto z mostu. //sorry za doubleposta, ale nie mogłem inaczej zrobić :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 4 Lutego 2006 Udostępnij Opublikowano 4 Lutego 2006 Pokombinuj z Viewami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Lutego 2006 Administratorzy Udostępnij Opublikowano 4 Lutego 2006 Zrób to tak. Stworz obiekt obj_text i w nim daj: Create txt[0]='Welcome log'; max_txt=0;//aktualny rozmiar tablicy txt scroll=0;//aktualna pozycja przewijania max_scroll=20;//max ilosc tekstow na ekranie Draw for (i=0; i<max_scroll; i+=1;) { if i<=max_txt { draw_text(20,i*15+20,txt[i+scroll]);//pozycje x i y mozesz sobie zmienic, i*15 oznacza ze kazdy kolejny tekst jest malowany o 15 pikesli niezej od poprzedniego, a +20 oznacza ze wsyzstkie sa malowane 20 pikseli od gory ekranu. } } Potem stwórz nowy skrypt, i nazwij go naprzykład add_text(); add_text with (obj_text) //nazwa obiektu w ktorym umiesczony jest kod powyzej { max_txt+=1; txt[max_txt]=string(argument0); } I teraz w tym obiekcie tam gdzie masz funckje wpisywania tekstu daj Key press Enter add_text(jakas_zmienna);//za jakas zmienna podaj zmienna ktora przetrzymuje wpisywany tekst No i tak to wygląda. Działa na 100% bo kilka dni temu pisałem chata w GM i to z niego pochodzi ten skrypt. NIestety musisz też wziąść po uwagę dwie rzeczy 1) - maksymalny rozmiar tablicy w gamemaker to chyba 32000 rekordów, zatem gdy zmienna max_scroll przekroczy te wartość, program sie zawiesi 2) - jeżeli użytkownik wpisze znak #, to automatycznie tekst będzie w dwóch liniach przez co teksty będą na siebie nachodzić. Dało by się to rozwiązać, jednak nie jest to takie proste 3) - jeżeli tekst będzie za długi to nie zmieści się na ekranie, a pisanie w dwóch liniach nie wchodzi w grę, chyba ze zmodyfikujesz ten skrypt. Pozatym warto zaznaczyć ze 10 liter wwwwwwwwww i 10 liter iiiiiiiiii ma jak widać różną szerokośc, więc warto by uzywać czcionki maszynowe (courier new, lucida console), chyba że tak jak już pisałem zostanie napisany jakiś lepszy niż mój skrypt. mam nadzieję, że wszystko jasne p.s viewy odpadają, bo jak masz za dużo tekstu program może mieć całkiem wysokie spadki FPS'ów,. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 4 Lutego 2006 Autor Udostępnij Opublikowano 4 Lutego 2006 Dobrze, już prawie działa. Nie wiem co jest nie tak (może źle przepisałem), ale gdy tekst dochodzi do ostatniej linijki w okienku, i napiszemy kolejną linjkę, linia z tekstem się nie dodaje. Jak instrukcja jest za to odpowiedzialna i jak dodać scrolling? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 4 Lutego 2006 Udostępnij Opublikowano 4 Lutego 2006 Oh! Wszystko działa jak trzeba, dodaj automatyczne scrollowanie (w Key press Enter): if max_txt!=scroll+max_scroll && max_txt>20 { scroll=max_txt-max_scroll; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 4 Lutego 2006 Autor Udostępnij Opublikowano 4 Lutego 2006 Dzięki, sam sobie bym nie poradził. //wiem, zaczynam wkurzać ciągłymi pytaniami... 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ę