Skocz do zawartości

Suwak przewijania


Jakim

Rekomendowane odpowiedzi

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

  • Administratorzy

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

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