Strona główna
Witaj, nieznajomy!

Tekstury

Tekstury (grafiki), w przeciwieństwie do modeli, są płaskie, dlatego jest możliwość wyświetlenia ich na ekranie. Można to wykorzystać do wielu rzeczy, np. jeden użytkownik z Naszego forum stworzył za ich pomocą pager, podobny do tego z GTA III czy GTA VCS. W grze tekstury zostały zastosowane już na samym początku, kiedy to jesteśmy informowani, że znajdujemy się na lotnisku (czarny ekran i napis).
Zanim przystąpimy do pisania kodu, trzeba dowiedzieć się kilku informacji.


  1. Tekstury znajdują się w plikach .txd.
  2. Pliki .txd, które możemy wykorzystać w skrypcie znajdują się w katalogu:
  3. Kod:
    [katalog_z_grą]/models/txd

  4. Do otworzenia tych plików najlepiej posłużyć się darmowym programem TXD Workshop, który możesz pobrać stąd.


W kodzie ominę sekcję "MAIN" i inne podstawowe elementy.

Kod:
0390: load_txd_dictionary "GZ"


Powyższym kodem ładujemy plik .txd o nazwie GZ. Należy pamiętać, że nazwę podajemy bez rozszerzenia pliku. Jeśli chcesz skorzystać później z innego pliku, wystarczy wykonać ponownie ten kod.

Kod:
038F: load_texture "logo" as 1
038F: load_texture "star" as 2


Teraz ładujemy konkretne tekstury (logo i logo2) z pliku, który wcześniej wczytaliśmy. W tym przypadku "GZ". Tutaj także podajemy nazwy bez rozszerzenia. Na końcu przypisujemy daną teksturą do stałego numer. Tutaj są to cyfry 1 i 2. Należy pamiętać że te numery nie mogą się powtarzać.

Kod:
038D: draw_texture 1 position 50.0 300.0 size 150.0 50.0 RGBA 255 255 255 255


Kiedy wszystko co potrzebne jest załadowane, możemy przystąpić do wstawienia/narysowania/stworzenia tekstury na ekranie. Pierwszym parametrem jest stały numer tekstury, który wcześniej określiliśmy (tu: 1). Następnie określamy pozycję na ekranie według osi X i Y. Kolejne dwa parametry to rozmiar tekstury, szerokość i wysokość. Ostatnie cztery określają "kolorową nakładkę" na teksturę. Wartości podajemy w kodzie RGB (Red Green Blue), więcej na ten temat w Google.

Należy pamiętać, że wyświetlanie tekstury należy zapętlić, aby pozostała na ekranie. Domyślnie jest ona wyświetlana tylko w jednej klatce, po czym znika.

Kod:
074B: draw_texture 1 position 428@ 429@ scale 430@ 431@ angle $TEMPVAR_ANGLE color_RGBA 220 220 220 404@


W pewnym momencie może zajść potrzeba obrócenia tekstury. Nie trzeba bawić się w programie graficznym i przezroczystością alpha. Z pomocą przychodzi nam powyższa funkcja. Początek jest taki sam jak poprzednio: najpierw numer tekstury, pozycja XY i wymiary. Po tym następuje angle (ang. kąt). Określamy tutaj kąt, o jaki ma obrócić się tekstura, np. 45.0. końcówka jest taka sama jak poprzednio, czyli kolorowa nakładka.

Kod:
03E3: set_texture_to_be_drawn_antialiased 1


Powyższa funkcja umożliwia włączenie tzw. antialiasingu (wygładzanie krawędzi) dla danej tekstury. Wystarczy podać tylko jeden parametr, czyli numer przypisany do tekstury.

/public/images/articles/medium/2009-01-21-14-29-55


Częste błędy

1. Najczęstszym błędem jest podanie w błędny sposób pozycji i wymiarów:
100.0 - DOBRZE
100 - ŹLE
Należy pamiętać o kropce i wartości, która po niej następuje.

2. Uważaj na nazwy, jedna literówka i gra się wiesza.
3. Jeśli tekstura nie wyświetla się poprawnie, widać np. tylko kawałek to na 95% jest to wina pliku graficznego tekstury w pliku txd.
Dodane przez: MakG
Posting comments to this article is disabled.
Created & Powered by MakG
Wszelkie prawa zastrzeżone