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:
| # | Kolor | Tr. szesnastkowy | R-G-B | Materiał |
| 0 | | #000000 | 0-0-0 | Skała |
| 1 | | #800000 | 128-0-0 | Tło |
| 2 | | #008000 | 0-128-0 | Piach |
| 3 | | #808000 | 128-128-0 | Woda |
| 4 | | #000080 | 0-0-128 | Szkło |
| 5 | | #800080 | 128-0-128 | Wodorób |
| 6 | | #008080 | 0-128-128 | Wodojad |
| 7 | | #808080 | 128-128-128 | Specjalna skała |
| 8 | | #C0DCC0 | 192-220-192 | Materiał
wybuchowy |
| 9 | | #A6CAF0 | 166-202-240 | Specjalna skała 2
(door) |
| 10 | | #2A3FAA | 42-63-170 | - |
| 11 | | #2A3FFF | 42-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
linka | Przepuszcza broń | Przepuszcza robaka | Specjalne |
| 0 |
Skała | Nie | Nie | Tak | Nie | Nie | - |
| 1 |
Tło | Nie | Nie | Nie | Tak | Tak | - |
| 2 |
Piach | Tak | Tak | Tak | Nie | Nie | - |
| 3 |
Woda | Nie | Nie | Nie | Tak | Tak | Można pływać |
| 4 |
Szkło | Tak | Tak | Tak | Nie | Nie | Tłucze się |
| 5 |
Wodorób | Nie | Nie | Nie | Tak | Tak | Tworzy wodę |
6 | Wodojad | Nie | Nie | Nie | Tak | Tak | Niszczy wodę |
7 | Specjalna skała | Nie | Nie | Nie | Tak | Nie | - |
8 | Materiał wybuchowy | Tak | Tak | Nie | Nie | Nie | Wybucha/Nie
działa |
9 | Specjalna skała 2 | Tak | Tak | Tak | Nie | Nie | - |
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 eksplozje
Wartoś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 obiekt
Wartoś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 eksplozji
Wartoś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 żywot
Wartości: obiekt.obj
- flash_radius
- Średnica flasha
Wartości: dowolne
- flash
- Intensywność flasha
Wartości: dowolne
- give_weapon
- Jaką broń ma dawać obiekt (dotyczy tylko box.obj)
Wartości: weapon.wpn
- gravity
- Jaka gawitacja działa na dany obiekt
Wartoś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ła
Wartości: dowolne
- number_of_frames
- Liczba klatek animacji
Wartoś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 trafieniu
Wartoś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 robala
Wartoś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 żywot
Wartoś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 obiekt
Wartości: sprite.bmp
- timeout_variation
- Wachania czasu zniknięcia danego obiektu
Wartości: dowolne
- timeout
- Czas po jakim obiekt znika
Wartości: dowolne
- worm_detect_range
- Przy jakiej odległości obiekt działa na robaka
Wartości: dowolne
- worm_obj_shoot_speed
- Prędkość początkowa obiektów powstałych w wyniku trafienia robaka
Wartoś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'
CAŁOŚĆ ZERŻNIĘTA NA PEŁNĄ PAŁĘ Z WWW.GUSANOS.LIERO.ORG.PL