Mapmaking w Gusanos 0.8.1
 

1. Wstęp

Słowem wstępu. Poradnik dotyczy Mapmakingu w Gusanos 8-0-1. Tak, Gusanos 0.8.1 nie różni sie od 0.9 tylko oznaczeniem. Nie ma żadnego ograniczenia wiekowego zezwalającego na korzystanie z tegoż dokumentu, nie ma również żadnych atestów, więc nie ględzić, cieszcie się że taki gruby.

1.1. Słów kilka o prawach i obowiązkach

Tak, tego też tutaj nie może zabraknąć. Tak więc:
Zabrania się umieszczania materiałów z tegoż artykułu na własnych stronach/czymkolwiek bez zgody autora, czyli mnie - Guthricka von Kewpy :D, w przeciwnym wypadku nalezy przygotować się na spotkanie oko w oko z Volumem, naszym Ligowym straszakiem :D

1.2. Dla kogo przeznaczony jest poradnik

Z poradnika najprawdopodobniej skorzysta każdy, jakoże materiał ten z racji swojej budowy dostępny jest dla najbardziej początkujących jak również dla doświadczonnych, którzy znajdą tutaj informacje, o których nie zawsze się pamięta, a które mogą się przydać. Jednym słowem, poradnik ten to skarbnica wiedzy na temat mapmakingu w Gusanos i spokojnie można ją określić mianem bibli.

1.3. Struktura dokumentu

To jest może nieistotne, ale lepiej coby było, niż miałoby tego zabraknąć. Tak więc, aby rozwiać wszelkie wątpliwości - Materiał jest rozłożony w taki sposób, że początkujący będzie prowadzony poprzez kolejne zagadnienia, odkrywając co chwila nowe przydatne wynalazki, tym samym zwiększając swoje umiejętności, po przebrnięciu do końca, będzie w pełni sprawnym mapmakerem potrafiącym robić mapy, które będą królowały przez kolejne lata na światowej scenie. Zaś doświadczeni użytkownicy będą mogli szybko i sprawnie wyszukać interesujący ich element, jakoże wszystko jest ładnie wydzielone, posegregowane, i inne takie tam sprytne rzeczy. Jakkolwiek, miłej nauki.

1.4. Różnice między Liero a Gusanos

Zanim przejdziemy do prawdziwego tworzenia, warto przenieść się kilka lat wstecz, aby dostrzec różnice, oraz prześledzić ewolucję tego mrocznego wynalazku, jakim są mapy. Tak więc. W momencie gdy Liero pierwszy raz ujrzało światło dnia, dzień za dniem zaczęło gromadzić wokół siebie coraz więcej fanów. Ci właśnie fani robili grali na randomowych mapach - trochę kamienia i mnóstwo piachu, jednak szybko zapragnęli tworzyć własne mapy. Początkowo były to proste kamienne konstrukcje zrobione w levedicie. Któż z nas nie budował kiedyś schronów właśnie tymże wynalazkiem. Jednak Leveditowanie nie trwało długo, ponieważ w końcu powstał edytor do tworzenia map - Wormhole. Był to przełom w kwestii tworzenia map. Od wtedy właśnie zaczęła się prawdziwa ewolucja, a może i nawet rewolucja. Między setkami gniotów powstały mapy, na których gra się do dziś, w klonach Liero, niekoniecznie nawet podobnych do swojego poprzednika. O tym jednak póĽniej. W tym momencie jednak takie mapy zaczęły nie wystarczać, ludzie robiący własne konwersje, potrzebowali wielu cudów, kt+rych Liero nie posiadało, tak więc tworzenie map było dosyć ograniczone. Oczywiście - Można zrobić piękną i grywalną mapę przy użyciu samego piachu i kamienia, ale wraz z uelitarnianiem sceny Liero rosły wymagania mapmejkerów, ponieważ Liero ograniczało nawet tych najlepszych. Gusanos [Jak również wszysktie inne Klony Liero - Wurmz!, czy LieroX] te ograniczenia zniosło. Rozmiar mapy jest nieograniczony, a dzięki rozdzieleniu szkieletu i wyglądu możemy robić piękne i wielofunkcyjne mapy. Poza tym Gusanos oferuje całą gamę dodatków pozwalających zwiększyć funkcjonalność map. Chodzi tu o wynalazki takie jak obiekty reagujące z otoczeniem, animacje, czy innne, przeróżne twory. Tak więc, tym razem mapy nie są ograniczone przez możliwości silnika, a twórców ;)

2. Organizacja pracy

2.1. Jakich programów użyć

Pierwszy problem niewtajemniczonego mapmakera - Gdzie jest jakiś edytor do robienia map? Jakiś Wormhole czy coś? Hmmm, no cóż, edytory są wszędzie, wystarczy się rozejrzeć. Tak. Dobrze kombinujecie. Dla Gusanos [Jak i również dla innych nowoczesnych klonów] nie ma żadnego specjalnego edytora - do produkcji map używa sie zaawansowanych programów graficznych, takich jak Gimp, Paint Shop Pro, Adobe Photoshop, Corel Draw. Ten pierwszy, mimo że ma możliwości trochę mniejsze od swoich poprzedników, wierzcie Guthowi - RZĄDZI1! 11 :>. Jest darmowy i niewielki - to jakieś 10Mb, a dostajemy bardzo dobrej jakości towar ;). I tutaj bardzo silna cecha - GIMP jest dostępny w wersjach nie tylko pod Windowsa, ale także Linuksa, oraz inne zwierzęta. Cechuje się również wysoką bezawaryjością, co jest niewątpliwie dużym plusem. W przypadku gdy nie mamy dostępu do płatnych kolegów proponuje zdać się na niego - w Paincie daleko nie zajdziemy. Jedyne co w programi etym może przeraĽić nowicjuszy, do jego pozornie dość skomplikowana obsługa i budowa. Nie ma się jednak co zrażać, w końcu autor tego poradnika właśnie korzysta z GIMP-a:>.

2.2. Z czego składa się mapa

Wszystkie mapy możemy znaleĽć w katalogu ../Gusanos/nieznany_mod/maps/nieznana_mapa; Ponizej możecie znaleźć strukturę folderu z mapą. Pozycje poprzedzone gwiazdką ("*") są opcjonalne, do działania mapy wymagane są tylko 2 pliki - level.png, oraz material.png. [Otrzymujemy w rezultacie mapę o możliwościach takich, jak te Lirtowe]Opis wszystkich plików poniżej.

2.2.1. Drzewko/Struktura katalogu mapy

Gusanos
   |
   |-Default
         |
         |-Maps
             |
             |-MyMap
                |
                |-*objects
                |    |
                |    |*fan.obj
                |    |*jerz.obj
                |
                |-*sprites
                |    |
                |    |*fan.png
                |    |*jerz.png
                |
                |level.png
                |material.png
                |*paralax.png
                |*config.cfg
                |*background.png
                

2.2.2. Opis plików mapy

2.2.2.1. level.png

Level.png odpowiada za to, co zobaczymy na ekranie podczas gry, jest to swoista sceneria mapy, nic nie robi, nie ma żadnego wpływu na rozgrywkę, a zadaniem tego pliku jest tylko pokazywanie graficznej strony mapy, kolory jakich tu użyjemy nie definiują materiału, z którego jest zbudowana mapa (tak właśnie w Liero było). W gusanosch] zostało to rozdzielone, tak więc plik level.png" odpowiada za to co zobaczymy, a kolejny opisywany plik - "material.png" za to, co jest czym na mapie.


2.2.2.2. material.png

Mapa, do stwierdzenia co jest skałą, co wodą, co powietrzem, czy czymkolwiek innym, potrzeuje takiego właśnie pliku, w którym to oddzielnie i niezależnie od zawartości pliku "level.png" możemy określić właściwości danego materiału. Jakby to mrocznie nie brzmiało, zasady są bardzo proste, a zarazem sprzyjające i dające o wiele większe pole manewru mapmejkerom. Plik "material.png" musi być tej samej wielkości co plik."level.png" i to wśaściwie jedyna ich wspólna posiadana cecha. Material jednak korzysta z określonych kolorów, do określania materiałów ;), listę z nimi możecie znaleĽć kawałek niżej w rozdziale Materiały i ich właściwości.


2.2.2.4. config.cfg

Plik wymagany jest, jeśli mapa ma korzystać z obiektów, świateł, animacji i inych mrocznych niewiadomych. Bez niego mapa działa, jednak wymagają go ficzery wyżej wymienione. Informacje o tym, jak umieszczać w nich deklaracje o obiektach znajdują się w rozdziale dynamiczne mapy.


2.2.2.5. sprite.png

Tak, jeśli chcemy zrobić animowany obiekt, taki jak wiatrak albo inne złożone ustrojstwo, nie obejdzie się bez tego wynalazku. Elementy te powinny znajdować się w folderze 'sprites' danej mapy. Sprajty działają w połączeniu z obiektami. jeśli chcesz się dowiedzieć więcej na ten temat, zajrzyj do rozdziału dynamiczne mapy.


2.2.2.6. object.obj

Pliki określające, jak nasze mroczne coś co zrobimy będzie się zachowywało w czasie gry. Elementy takie jak obiekty powinny znajdować się w folderze 'objects' danej mapy, tutaj jednak jest możliwość podczepienia obiektu bezpośrednio z gry, zaleca się jednak umieszczanie wszystkich tego typu elementów w folderze mapy. Jeśli łączymy je z animacjami, potrzebne będą informacje takie jak ilość klatek, czy częstotliwość ich zmieniania. W przypadku gdy obiekt nie korzysta z animacji, informacji będzie dużo więcej, w końcu obiekt - jego wygląd czy zachowanie - będą robione od zera. Można oczywiście połączyć oba te narzędzia w celu uzyskania jeszcze lepszego efektu, o tym jednak również w rozdziale dynamiczne mapy. ;)


2.2.2.3 paralax.png

Paralax, to nic innego jak tło dla mapy, drugi plan, ruchomy plan... Jest dosyć prosty w użyciu. Więcej o nim w rozdziale... dynamiczne mapy. :D

2.3. Jak zapisywać pliki

Tworzenie map w Gusanos wymaga od nas jeszcze jednej czynności niespotykanej w Liero, czy nawet innych klonach, coby mapa mogła działać. Dla pliku material.png trzeba bowiem ustawić tryb indeksowany obrazu. W różnych programach robi się to inaczej, tak więc trzeba o tym tutaj napomknąć.

2.3.1. Gimp

W nowo otwartym dokumencie odpalamy "menu/obraz/tryb/indeksowany..."/"Menu/Image/Mode/Indexed Color...". Następnie klikamy OK i zapisujemy plik jako "material.png"

2.3.2. Adobe Photoshop

W menu wybieramy Obraz/Tryb/Indeksowany"/"Image/Mode/Indexed Color...". Następnie ustawiamy palete dla systemu Windows ("System (Windows)"), resztę zostawiamy domyślnie. Jeszcze raz OK i zapisujemy plik jako "material.png"

3. Materiały

3.1. Kolory

Jak już wcześniej było wspomniane, plik material.png poprzez określone z góry kolory, zachowujące się jak skała, piach etc., pozwalają na to, aby nasza mapa w ogóle zadziałała. Wiemy już, jak zapisywać te pliki, nie znamy jednak jeszcze kolorów. Z pomocą przychodzi nam jednak poniższa tabelka:

#KolorTr. szesnastkowyR-G-BMateriał
0      #0000000-0-0Skała
1      #800000128-0-0Tło
2      #0080000-128-0Piach
3      #808000128-128-0Woda
4      #0000800-0-128Szkło
5      #800080128-0-128Wodorób
6      #0080800-128-128Wodojad
7      #808080128-128-128Specjalna skała
8      #C0DCC0192-220-192Materiał wybuchowy
9      #A6CAF0166-202-240Specjalna skała 2 (door)
10      #2A3FAA42-63-170-
11      #2A3FFF42-63-255-

3.2. Właściwości materiałów

Każdy materiał ma określone właściwości - to niby oczywiste, ale w razie czego poniżej zamieszczona tabela:

#MateriałMożna jeśćMożna rozwalićChwyta linkaPrzepuszcza brońPrzepuszcza robakaSpecjalne
0 SkałaNieNieTakNieNie-
1 TłoNieNieNieTakTak-
2 PiachTakTakTakNieNie-
3 WodaNieNieNieTakTakMożna pływać
4 SzkłoTakTakTakNieNieTłucze się
5 WodoróbNieNieNieTakTakTworzy wodę
6WodojadNieNieNieTakTakNiszczy wodę
7Specjalna skałaNieNieNieTakNie-
8Materiał wybuchowyTakTakNieNieNieWybucha/Nie działa
9Specjalna skała 2TakTakTakNieNie-

4. Dynamiczne mapy

Tak, w tym miejscu kończy się wędrówka klonów Liero, a to ze względu na to, że Gusanos daje praktycznie nieograniczone możliwości, a może ograniczone, jednakże tylko przez nasz umysł czy umiejętności. W gusanos 0.8.1 możemy tworzyć spawnpointy, umieszczać bezpośredni na mapie obiekty, ustawiać ruchome tła, zapraszam do ostatniej części lektury.

4.1. Spawnpointy

Możemy respawnować się na mapie losowo, co w zwykłym Liero może sprawić dużą radość, dlaczego jednak nie respawnować się w ustalonych z góry miejscach, tak jak w q? Jest to jedna z najprostrzych operacji. O spawnpointach, tak jak o wszystkich innich dodatkowych ficzerach, mapę informujemy w pliku 'config.cfg'. Aby zadeklarować spawnpoint, w pliku .cfg musimy napisać informację wg schematu - spawnpoint położenie_na_osi_X, położenie_na_osi_Y, numer_drużyny[0/1]. Przykład: spawnpoint 185,775,0 spawnpoint 680,775,1 spawnpoint 222,355,0 spawnpoint 451,361,1 spawnpoint 460,260,0 spawnpoint 375,330,1 spawnpoint 377,567,0 spawnpoint 564,382,1 Tenże mroczny kod zawiera informacje o czterech spawnpointach dla drużyny pierwszej, oraz czterech dla drużyny drugiej. Jeśli chcemy określić spawnpoint dla obu graczy, wpiszemy po przecinku '0'.

4.2. Paralax

Paralax to jedna z łatwiejszych sztuczek w Gusanos 081. Umożliwia ona wstawienie ruchomego drugiego planu. Paralax nie wymaga żadnych informacji o sobie w configu mapy etc. Aby paralax zadziałał muszą być spełnione dwa warunki:
Miejsca na mapie, w których chcemy widzieć paralax muszą mieć kolor #ff00ff
Paralax musi być mniejszy lub też większy niż 'level.png'. W przypadku zbyt małego paralaxu występują zrozumiałe błędy w odtwarzaniu grafiki, tak więc umiarkowanie zmniejszać.

4.3. Światła

Światła, działają tak samo jak w Wurmz!, z tą różnicą, że są bardziej konfigurowywalne. Informacje o światłach standardowo umieszczamy w pliku "config.cfg". Aby zadeklarować informacje o lampce, musimy się posłużyć takim oto wzorem: light położenie_na_osi_X, położenie_na_osi_Y, R, G, B, Zasięg, Natężenie. Przykład: light 451,342,255,255,100,350,10 light 303,372,255,255,100,350,10 W tym przypadku określić możemy położenie lampki, jej kolor, jak i zasięg oraz natężenie światła, ciekawe, nie? Ten sposób umieszczania śwaitła jest jednak nieco wadliwy w przypadku, gdy otoczenie wpływające na światło zmieni się. Ze względu na to, że śwaitła te wczytywane są na początku gry, nie zmieniają się wraz z modyfikacją terenu, tj. Jeśli zniszczymy piach który blokował wiązkę światła, będzie się ona kończyła na otwartej przestrzeni. Drugi, bardziej funkcjonalny rodzaj świateł, to światła zrobione z obiektów, ale o tym pod spodem.

4.4. Obiekty

Cóż, przed nami niewątpliwie najciekawsza część, ponieważ właśnie za sprawą obiektów możemy upiększyć rozgrywkę o różnorakie detale, jakie? Jakiekolwiek - liczą się nasze umiejętności i wyobraĽnia. Fakt, niektóre zasady czasem trzeba trochę ponaginać do uzyskania zamierzonego efektu, ale to się nie liczy ;). Różne obiekty możemy znaleźć np. w katalogu "default/objects/" i to właśnie tego typu obiekty możemy umieścić bezpośrednio na mapie. Można je podczepić do mapy już na tym poziomie, a te. Jak łatwo spostrzec, po otworzeniu przedstawiają nam kilka/naście linijek z niezrozumiałymi znakami NiewiadomoSkąd(tm). To są właściwości naszych obiektów - określają ich zachowanie etc. Jakoże może się wydać to dosyć ciężkie do pojęcia dla kogoś nowego, poniżej znajduje się lista tychże właściwości:

affect_particles
Czy obiekt ma oddziaływać na inne partikle Wartości: [0|1]
affect_worm
Czy obiekt ma oddziaływać na robala Wartości: [0|1]
affected_by_explosions
Czy obiekty mają być odpychane przez eksplozjeWartości: [0|1]
affected_by_motion
Robi się...Wartości: dowolne
alpha
Robi się...Wartości: 0-255
animate_on_ground
Czy obiekt ma się wciąż animować po zetknięciu z ziemiąWartości: [0|1]
autorotate_speed
Prędkość obracania się sprite'a wokół własnej osi. Takie ułatwienie coby nie trzeba było samemu obracać - nie wymaga wysiłku a i efekt lepszy. Wartości: dowolne
blow_away_on_hit
Jak mocno odrzuci robala po trafieniu.Wartości: dowolne
bounce
Jak mocno obiekt odbije się od przeszkody.Wartości: dowolne
bright_variation
Robi się...Wartości: dowolne
color
Robi się... Wartości: [RGB]
damage
Jak duże będą obrażenia zadane przez obiektWartości: dowolne
delay_between_frames
Odstępy pomiędzy kolejnymi klatkami animacji Wartości: dowolne
delay_between_trail_explosions
Odstępy między kolejnymi eksplozjami zostawianymi przez obiekt. [Pobierane z '../objects/explosions']Wartości: dowolne
delay_between_trail_objects
Częstotliwość wydzielania obiektów określonych w "shoot_object_trail" [Pobierane z katalogu '../objects/']Wartości: dowolne
directional
Robi się...Wartości: [0|1]
draw_on_map
Robi się...Wartości: [0|1]
exp_on_ground
Czy obiekt ma wybuchać po zetknięciu z ziemiąWartości: [0|1]
exp_on_worm
Czy obiekt ma wybuchać po zetknięciu z robakiem Wartości: [0|1]
explosion_sound
Dźwięk towarzyszący eksplozjiWartości: snd.wav
explosion_trail
Rodzaj eksplozji zostawianych przez obiekt [Pobierane z '../objects/explosions']Wartości: explosion.obj
explosion
W jaki sposób obiekt zakończy swój żywotWartości: obiekt.obj
flash_radius
Średnica flashaWartości: dowolne
flash
Intensywność flashaWartości: dowolne
give_weapon
Jaką broń ma dawać obiekt (dotyczy tylko box.obj) Wartości: weapon.wpn
gravity
Jaka gawitacja działa na dany obiektWartości: dowolne
hole
Ile piachu będzie wyżerała eksplozja Wartości: [null|chainhole|small_hole]
laser_type
Robi się...Wartości: dowolne
light_color
Kolor światła [RGB]Wartości: [RGB]
light_effect
Czy światło ma być emitowane Wartości: [0|1]
light_fadeness
Zasięg światłaWartości: dowolne
number_of_frames
Liczba klatek animacjiWartości: dowolne
remove_on_worm
Czy obiekt ma znikać po zetknięciu z robalem Wartości: [0|1]
shoot_number_on_worm
Liczba obiektów wylatujących z robala po trafieniuWartości: dowolne
shoot_number_trail
Liczba obiektów wypadającej w jednej serii traila określanego przez 'shoot_object_trail'Wartości: dowolne
shoot_number
Liczba obiektów wypadających z innego obiektu określonych w 'shoot_object'Wartości: dowolne
shoot_object_on_worm
Na co rozpada się obiekt po trafieniu w robalaWartości: obiekt.obj
shoot_object_trail
Rodzaj obiektów zostawianych przez obiekt [Pobierane z '../objects/']Wartości: obiekt.obj
shoot_object
Obiekt wylatujący z innego obiektu gdy ten skończy żywotWartości: obiekt.obj
shoot_speed_trail
Prędkość obiektów zostawianych przez inny obiekt określonych przez 'shoot_boject_trail'Wartości: dowolne
shoot_speed
Określa prędkość obiektu powstałego w wyniku dokonania 'shoot_object'.Wartości: dowolne
speed_multiply
Robi się...Wartości: dowolne
speed_variation_trail
Wachania prędkości dla obiektu wydalanego przez inny obiekt określonego wcześniej w 'shoot_object_trail'Wartości: dowolne
speed_variation
Robi się...Wartości: dowolne
sprite
Grafika, z której korzysta obiektWartości: sprite.bmp
timeout_variation
Wachania czasu zniknięcia danego obiektuWartości: dowolne
timeout
Czas po jakim obiekt znikaWartości: dowolne
worm_detect_range
Przy jakiej odległości obiekt działa na robakaWartości: dowolne
worm_obj_shoot_speed
Prędkość początkowa obiektów powstałych w wyniku trafienia robakaWartości: dowolne
worm_shoot_obj_speed_variation
Wachania prędkości początkowej obiektów powstałych w wyniku Wartości: dowolne
trafienia robaka

4.4.1.Wirtualne muchy

Znamy już zadania poszczególnych funkcji, warto byłoby zastosować to w praktyce. Grając kiedyś w ts'a na dm2 naszła mnie ochota zrobienia... Much XD. Tak, takich małych czarnych kropek latających w kółko i denerwujących robaki. Na drugą część silnik g081 mimo wysiłków nie pozwolił, ale mimo to muchy rządzą. Najpierw musimy się zastanowić, co ma robić nasza mucha. Otóż ma latać mniejwięcej w kółko. Dlaczego mniejwięcej? Ano, kierunków wypuszczania obiektów również nie możemy odgórnie ustawić. No ale od początku. Co będzie potrzebne do zrobienia takiej muchy? Jakiś obiekt startowy napewno się przyda. Obiekt startowy ma sie pojawić tylko na początku i emitować muchę. Następnie mucha ta ma mniejwięcej krążyć, tak więc potrzebujemy 4 kolejnych obiektów - Dwóch imitujących lot muchy w mniejwięcej lewo/prawo, oraz 2 imitujących lot w górę/dół.

Obiekt startujący [Nazwałem go "flygen.obj"] ma znikać od razu po uruchomieniu gry i przy eksplozji ma "wydzielać" pierwszą właściwą część muchy. Przyjrzyjmy się jego zawartości::

timeout=0 - Natychmiastowy wybuch shoot_number=1 - liczba wydzielanych przy eksplozji obiektów shoot_speed=20 - Ich prędkość shoot_object=fly1.obj - No i w końcu nazwa wydzielanego obiektu

Przy okazji - Ustalenie większej wartości w polu 'shoot_number' sprawi uwolnienie większej ilości much z jednego generatora. Wszystko jasne? Teraz trzeba przemyśleć działanie pierwszej części muchy [fly1.obj]. Nie mamy dużego pola manewru. Niech leci w lewo/prawo i wydziela obiekt imitujący lot w górę [fly2.obj]:

timeout=10 shoot_number=1 shoot_speed=150 shoot_object=fly2.obj gravity=0

...i teraz niech obiekt imitujący lot w górę [fly2.obj] wydziela obiekt imitujący lot w bok [fly3.obj]...

timeout=10 shoot_number=1 shoot_speed=400 shoot_object=fly3.obj gravity=-20

...a ten z kolei niech wydziela obiekt lecący w dół; [fly4.obj]...

timeout=10 shoot_number=1 shoot_speed=150 shoot_object=fly4.obj gravity=0

No i dół...

timeout=10 shoot_number=1 shoot_speed=400 shoot_object=fly1.obj gravity=20

Jak widzimy efektem eksplozji ostatniego jest wydzielenie spowrotem "fly1.obj", dzięki czemu pętla się zamyka, a "flygen.obj" więcej się nie pokazuje...

...a otrzymana mucha zachowuje się mniejwięcej jak mucha, choć nie do końca. Cała sztuka polega tutaj na manipulacji " shoot_speed", "timeout" i "gravity" w celu ustalenia prędkości i czasu trwania poszczególnych części muchy. Narazie tyle starczy, kiedyś może opiszę bardziej skomplikowaną muchę - gryzącą, mnożącą się uciekającą od eksplozji etc.

4.5. Animacje

Animacje umieszczamy w ../maps/moja_mapa/sprites/animacja.png, Same animacje, poza tym że są i ładnie wyglądają nie mają wpływu na środowisko zewnętrzne - nie mogą zabić, zdmuchiwać obiektów etc. Poniżej przykład prostej animacji [pożyczony z gusanos/ts/maps/dm2/sprites/fan.bmp]:



Tak, wiem, nic nie widać...



Obrazek składa się z dziewięciu równych klatek, a to czego nie widać ma kolor różowy. Sam obrazek nie załatwia jednak sprawy - Potrzebujemy jeszcze jekiegoś silnika dla naszego wiatraka, coby sie mógł kręcić. Silnik umieszczamy w "../moja_mapa/objects/obiekt.obj", w przypadku pozyczonego wiatraka będzie to gusanos/ts/maps/dm2/objects/fan.obj". Wygląda on następująco:
timeout=-1 number_of_frames=9 delay_between_frames=2 animate_on_ground=1 sprite=fan
"Ejrze, skont obiekty pomurz", mówiłeś że w zwykłych animacjach nie ma obiektów. W rzeczy samej, ten obiekt , mimo że jest obiektem, robi jedynie za silnik dla animacji [kiedy ma zniknąć, jak szybko zmieniac klatki etc.], nie może nas zabić, tryskać krwią używaną przez grę etc. Opis zmiennych powyżej. Wielkość animacji może być nieograniczona, nie obciążają one również prawie wcale gry, tak więc pole do popisu szerokie. Żywym dowodem na to jest chociażby krzyż mojego autorstwa na mapie g3a_maptest1 [dział download też]. Składa się on z 95 klatek a sam obrazek ma wielkość 13775x105px!. :>>> Obrazki zapisujemy niby w formacie '.bmp'

4.6. Zaawansowane techniki łączenia animacji i obiektów.

Oczekuje na realizację...:>