[#5]
Re: Konfigurowalny scroll...
@Dopuser,
post #1
Mam rozwiązanie znacznie prostsze od rozwiązania pana Grzegorza Kraszewskiego. Opiszę je krok po kroku.
Wykorzystuję tylko funkcje Move() i Text()!
1. Najpierw zdefiniuj tablicę znaków (char) o szerokości będącej liczbą znaków mieszczących się w okienku oraz drugą tablicę znaków gdzie zamieścisz tekst do scrollowania., np w naszym przypadku:
char bufor[40]; // tyle znaków mieści się jednocześnie na ekranie
char tekst[80]; // tyle znaków ma Twój tekst
2. Następnie wyczyść wszystkie elementy tablicy "bufor" na spacje i wpisz swój tekst do tablicy "tekst".
3. Wywołaj teraz funkcję Move( rp, 0, 8 ), gdzie rp to RastPort okna, a wysokość czcionki to np. 8 dla topaz.font. (zakładam, że otworzyłeś okno z atrybutem BORDERLESS, w innym przypadku podaj inne parametry funkcji Move()).
4. Teraz pętla główna. Wywołuj funkcję Text(rp, bufor, 40), gdzie 40 to szerokość okienka co pewien czas (użyj do przerwy funkcji WaitTOF() lub Delay()).
5. Teraz najważniejsze: W pętli głównej wprowadzaj do tablicy "bufor" z prawej strony kolejne litery tablicy "tekst", aż do wyczerpania tablicy "tekst".
6. Potem przesuwaj litery tekstu w tablicy w lewą stronę co jedną literę,
aż cały tekst zniknie po lewej stronie.
Scrolling co prawda jest co jedną literę ale duża płynność zostanie zachowana! Można modyfikować kod, np. żeby skrolował co kilka pikseli, wystarczy wywoływać funkcję Move() w pętli głównej.
Ostatnia modyfikacja: 29.08.2008 07:06:25