główna strona 


 
Program JBW FineTicker służy do wyświetlania na ekranie komputera paska z przesuwanymi tekstami i obrazkami w sposób, jaki znamy z telewizyjnych serwisów. Działa w systemie Windows XP lub nowszym, wykorzystując bibliotekę DirectX 9. Nawet tak prosta animacja GIF, jak pokazana obok, wyświetlana jest nierównomiernie, co obrazuje problemy występujące w systemie Windows. Opisywany program skutecznie sobie z nimi radzi.
o programie
Program odczytuje dane z pliku tekstowego i wyświetla je, płynnie przesuwając po ekranie z określoną prędkością. Za pomocą licznych parametrów można wpływać na wygląd tekstu i jego zachowanie.
Program odczytuje wskazany plik i przechowuje go w pamięci podczas przetwarzania. Po zakończeniu odczytuje plik od nowa, więc może to być w kółko ten sam tekst lub można go zmieniać, aktualizując plik przy pomocy innego programu. Jeżeli brak pliku z danymi, program wyświetla tekst "awaryjny", który można zdefiniować w wierszu poleceń, użytym do uruchomienia programu.
W systemie Vista lub nowszym można ponadto sprawić, aby tło i/lub litery były całkowicie lub częściowo przezroczyste.
Wszelkie efekty wizualne, włącznie z jednostajnym ruchem tekstu, są zrealizowane poprzez system dołączanych funkcji o bardzo prostej budowie, dzięki czemu dodawanie "wodotrysków" jest bardzo łatwe. Przykładowo, za jednostajne przesuwanie się tekstu odpowiada funkcja:
bool UPD_Move (OBJECT2D* obj, float advance)
{
  obj->SetPos(obj->GetPos() + obj->GetSpeed() * advance);
  return obj->InBox();
}
Otrzymuje ona wskaźnik do obiektu, którym ma sterować, oraz czas, jaki upłynął od poprzedniego wywołania. Zmienia położenie obiektu na ekranie stosownie do zawartej w nim informacji o szybkości. Kończąc zwraca wartość true, jeżeli obiekt ma pozostać w użyciu, a false jeżeli należy go unicestwić. W tym przypadku werdykt pochodzi z funkcji InBox(), która weryfikuje, czy obiekt mieści się w granicach widzialnego obszaru.
Mając dostęp do wszystkich atrybutów obiektu, np. do prędkości obrotowej i aktualnego kąta obrotu, możemy łatwo wprawić obiekt w ruch wirowy:
bool UPD_Spin (OBJECT2D* obj, float advance)
{
  obj->SetAngle(obj->GetAngle() + obj->GetSpin() * advance);
  return true;
}
Funkcje można składać bez ograniczeń, tzn. pojedynczym obiektem może jednocześnie rządzić dowolnie wiele funkcji.
Katalog z aktualnymi plikami programu (o ile masz prawo).  
Program został napisany przy użyciu Visual C++.
parametry
c wiersza poleceń, t w tekście, - ulotne
typ składnia opis
c window=<x>,<y>,<szerokość>,<wysokość> współrzędne okna, domyślnie na środku ekranu, ¼ powierzchni
c expire=<liczba> po tylu sekundach program samoczynnie kończy pracę, domyślnie 0 = nigdy
c id=<liczba> ID okienka, domyślnie 1
c font=<krój>,<rozmiar>,b,i parametry tekstu: b = pogrubienie, i = pochylenie, np. font=Times+New+Roman,120 (plusy zamiast odstępów)
c t color=<kolor> kolor znaków, można podać jako liczbę szesnastkową lub składowe [a,]r,g,b
c t bgcolor=<kolor> kolor tła, można podać jako liczbę szesnastkową lub składowe [a,]r,g,b
c t anycolor program wybiera losowo kolor znaków
c t anybgcolor program wybiera losowo kolor tła
c t anycolors program wybiera losowo kolor tła i znaków
c speed=<liczba> prędkość przesuwania tekstu, dodatnie w prawo, ujemne w lewo
c source=<ścieżka pliku> wskazuje źródło danych, domyślnie plik content.txt
c imgdir=<ścieżka folderu> wskazuje folder z plikami obrazów, domyślnie image
c imgfit skaluje obrazki do wysokości tekstu
c default=<tekst+bez+odstępów> tekst wyświetlany domyślnie gdy brak pliku źródłowego
c t shadow=<przesunięcie>,<przezroczystość> parametry cienia rzucanego przez tekst, domyślnie 2,204
t- blink pomruguje następnym elementem
t- spin=<liczba> w stopniech na jednostkę czasu, obraca następny element
t- jumpy=<liczba> amplituda w pikselach, element trzęsie się nerwowo
c t- grow=<liczba> w procentach na kwant czasu, zmienia wielkość elementu
c bottom-band ustawia okienko w postaci paska na dole ekranu
c border włącza obramowanie okienka (domyślne dla okienek innych niż bottom-band)
c noborder wyłącza obramowanie okna (domyślne dla bottom-band)
c ontop utrzymuje okienko zawsze na wierzchu
c glass w systemie Windows Vista lub nowszym włącza dostępność efektu przezroczystości (zależnego od koloru tła)
uwagi
  • Plik źródłowy, podobnie jak wiersz poleceń, jest rozbierany na pojedyncze elementy rozdzielone spacjami lub końcami wiersza. Wewnątrz takiego elementu nie może być spacji, a tam, gdzie są niezbędne (np. w nazwie kroju czcionki), zastępujemy je znakiem „+”. W opcji default w tekście nie można ponadto użyć znaku „=”, który w tym przypadku zastępujemy znakiem „~”.
  • Opcja ulotna to taka, której działanie dotyczy tylko jednego elementu, a zmieniony parametr powraca samoczynnie do domyślnej wartości.
  • Przy określeniu czcionki kolejność parametrów nie ma znaczenia i można pomijać dowolne z nich, przy czym dla kroju i rozmiaru domyślna jest dotychczasowa wartość, a dla pogrubienia i pochylenia – ich brak. np. font=b,200 to styl pogrubiony prosty o wysokości 200 pikseli. Kolor liter definiowany poleceniem color wewnątrz tekstu działa aż do następnego użycia tego polecenia, przy czym postać color= powoduje powrót do domyślnych ustawień.
  • Jeśli przy określeniu koloru zostaną użyte składowe r, g, b albo 6-cyfrowa liczba szesnastkowa, wówczas program uzupełnia taką definicję o bajt przezroczystości równy 255 (całkowicie nieprzezroczyste). Aby ustalić inny stopień przezroczystości, należy podać kolor czterema składowymi: a, r, g, b lub 8-cyfrową liczbą szesnastkową.
  • Pełna przezroczystość tła wymaga podania koloru 00000000 lub 0,0,0,0. Analogicznie wymusza się przezroczystość tekstu, przy czym pod przezroczystym tekstem nie ma tła, co daje możliwość interesujących efektów, np. literowych dziur w litym tle.
  • Program jest wyposażony w wewnętrzny „pluginowy” system efektów, a blink, spin, jumpy i grow są tylko trywialnymi przykładami. Dodanie do wiersza poleceń opcji grow=5 powoduje powiększanie tekstu o 5% na jednostkę czasu, a ponieważ odstępy w tekście się nie zmieniają, powstaje interesująca kompozycja (choć mało praktyczna z uwagi na czytelność). Bardzo łatwo można dodawać nowe efekty.
  • Tekst jest przechowywany w pamięci programu, a czcionka i obrazy – w pamięci karty graficznej. Dlatego należy unikać przesadnie dużych rozmiarów liter i ilustracji w stosunku do posiadanej pamięci karty graficznej, bo jej przepełnienie powoduje problemy wydajnościowe (zrywanie płynności wyświetlania).
 
opiekun: Janusz Wiśniewski :: rejestracja odwiedzin 2004 gości
mobi