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