energy.scene.pl

Popularny magazyn na ośmiobitowe Atari

Wybierz muzykę:

Energy 1: 1 2 3 4 5
Energy 2: 1 2 3 4 5 6 7 8 9 10 11 12
GED - czyli jak ulepszyć grafikę (2)

dracon
autor: dracon

Serdecznie witam wszystkich zainteresowanych tytułowym edytorem graficznym i zapraszam na dokończenie jego szczegółowego opisu. Tak więc niniejszym ogłaszam ciąg dalszy tra-GED-ii... ;-)))


W poprzednim odcinku opisałem wszystkie polecenia GED oraz podałem szczegółowy sposób postępowania w jednym z dwóch trybów pracy tego programu, to jest w trybie "playfield". Ten tryb edycji, oferujący możliwość kilkukrotnego zmieniania 3 rejestrów koloru w jednej linii ekranowej (niektórzy określają to mianem tzw. "ścigania plamki" ), jest już zdecydowanym krokiem naprzód w porównaniu z innymi, starszymi rozwiązaniami. Mam tu na myśli RAMbrandta, Color Enhancer, Colors i parę inych, które używając przerwania DLI umożliwiały co prawda uzyskanie na obrazku do 128 kolorów, ale w jednej linii mogły być naraz tylko 4 różne kolory. Nie twierdzę, że nie można mimo wszystko tworzyć tam wspaniałych, wielokolorowych grafik (dowodem na to są bardzo ładne obrazki Ravena/Quasimodos w demie "Drunk Tank", gdzie po mistrzowsku zostały wykorzystane możliwości standardowego przerwania DLI), ale naprawdę są duże ograniczenia dla grafika chcącego wielu kolorów w różnych miejscach ekranu. Możliwości GED w trybie "playfield" są już nieco lepsze, choć "nigdy nie jest tak dobrze, żeby nie mogło być lepiej"... Myślę, że dodanie przez autora edycji i użycia PMG znakomicie dopełniło tryb "playfielda" i rzeczywiście J. Harrisowi udało się uzyskać najlepszy możliwy tryb graficzny bez żadnego migania, jaki potrafi wyświetlić Atari XL/XE. Zresztą pojawił się już nowszy edytor graficzny - "POWER GRAPHICS", który wykorzystuje właściwie identyczne założenia, tyle, że może on pracować w kilku trybach graficznych ( nie tylko w trybie gfx #15, jak GED ).


Małe info...

 

GED ma pełną kontrolę nad wszystkimi rejestrami grafiki PMG, lecz w znacznie bardziej ograniczonym zakresie, w porównaniu z edycją standardowych ("playfield") kolorów.


Warto byłoby najpierw przypomnieć sobie podstawowe wiadomości o grafice PMG, gdyż będzie to przydatne podczas używania GED'a...


Duszek ( sprajt, z ang. sprite ) jest definiowanym przez użytkownika obiektem, który można umieszczać w dowolnym miejscu ekranu i płynnie przesuwać (oraz animować). W Atari możliwe jest uzyskanie dwóch rodzajów duszków: większych - graczy i mniejszych nazwanych pociskami. Dlatego noszą one oficjalną nazwę grafiki graczy i pocisków (Player/Missile Graphics, w skrócie PMG). Duszków jest osiem: czterech graczy i cztery pociski. Tworzone są one przez układ GTIA, który "miesza" je z normalnymi danymi ( z "playfield" ) wyświetlanego obrazu. Dzięki temu duszki są niezależne od pozostałych parametrów obrazu i mogą być używane we wszystkich trybach graficznych (szczególnie nadają się, moim zdaniem, do trybu piętnastego OS, ze względu na to, iż mają takie same piksele w standardowej ich rozdzielczości). Duszki są połączone parami gracz-pocisk i ponumerowane od 0 do 3 (uwaga: w GED, dla wygody używania, autor zmienił numerację i jest to 1-4 ! )... Liczbę duszków można zwiększyć przez zastosowanie DLI, lecz akurat nie ma tej możliwości w GED...


Wyróżnić można następujące cechy duszków:

 

- szerokość gracza 8 punktów (pikseli), a pocisku 2 punkty (piskelki takie jak w trybie gfx #15 OS);


- dowolna wysokość wszystkich duszków


- możliwość dwukrotnego lub czterokrotnego zwiększenia szerokości (dwukrotna - piksele duszka takie jak piksele w trybie gfx #9 OS, czterokrotna - cztery razy 'grubsze' piksle duszka w porównaniu z standardowa szerokością; Jeśliby na maxa rozszerzyć wszystkie obiekty PMG, to można nimi zasłonić cały ekran... co możę być szczególnie przydatne, tu - w programie GED, ale o tym później...)


- jedno - albo dwuliniowa rozdzielczość pionowa (chodzi tu o wysokość każdego punktu duszka - jednoliniowa to wysokość piksla taka jak w "piętnastce", a dwuliniowa to rozdzielczość pionowa "siódemki");


- kolor ustalany oddzielnie dla każdej pary gracz-pocisk;


- możliwość tworzenia duszków wielokolorowych (poprzez ich nakładanie na siebie i operację ORA);


- ustalony priorytet wyświetlania między duszkami (który na/za którym ma się pokazać);


- wybierany priorytet wyświetlania duszków i tła (czyli co się ma pojawić "na wierzchu");


- możliwość łączenia pocisków w piątego gracza (mającego niezależny od pozostałych graczy kolor);


- wykrywanie kolizji pomiędzy duszkami (szczególnie użyteczne w grach...);


- wykrywanie kolizji duszków z tłem (uwaga jak wyżej...);


Ufff... Trochę tego było, ale to chyba wszystko, co trzeba wiedzieć o PMG przy używaniu GED - resztę doczytacie sobie podczas dalszej części tego wykładu...


Chyba za daleko odszedłem od głównego tematu... :-)) ... Pora zatem przedstawić jak wygląda w GED...


Edycja PMG:

 

Przechodzimy do niej po naciśnięciu klawisza "P" (przełącza on między edycją PMG a "playfield"). Po przejściu do trybu PMG obok ikonki Draw/Fill pojawi się (z lewej) drugi mały prostokąt - symbol auto-wybierania dowolnego obiektu PMG, który jest poniżej bieżącej pozycji kursora. Możesz teraz wprowadzić komendy dla PMG, które automatycznie użyją obiektu PMG na pozycji kursora, jeśli takowy tam istnieje (tzn. jest tam umieszczony). Nic się nie stanie (nie zadziała), jeżeli PMG na tamtej pozycji nie będzie.


Poszczególne obiekty PMG mogą być wybierane ręcznie (osobno) przez wciśnięcie klawiszy 1-4, aby wybrać graczy 1-4, albo 5-8, by wybrać pociski 1-4. Ręczna selekcja może stać się konieczna, jeśli dwa obiekty PMG nachodzą na siebie, bo procedura auto-wybierania zawsze wybierze niższy numer (obiekt) PMG. W razie czego, zawsze można powrócić do auto-selekcji PMG klawiszem "A" (który ją włącza i wyłącza).


Teraz podam uproszczony (aczkolwiek skuteczny !) sposób tworzenia obiektów PMG w GED:


1. Wciśnij "P" (włączenie edycji PMG);


2. Klawiszem "F" ustaw pożądany priorytet PMG (oznacza to, na którym kolorze mają się pojawić duszki, najlepiej jednak tego nie zmieniać, wtedy duszki będą widoczne na kolorze tła - #0. Dlaczego nie zmieniać ?! O tym na koniec opisu... );


3. Ewentualnie przełącz klawiszem "O" priorytet między samymi obiektami PMG (tzn. jak mają się między sobą "zachowywać" duszki... Jednak na początek lepiej niczego tutaj nie zmieniaj... );


4. Wybierz konkretny obiekt PMG, naciskając odpowiednią dlań cyfrę (1-4 = duszki, 5-8 = pociski). Zauważysz u góry kilka kropek (ilość ich zależna jest od nr wybranego obiektu PMG, np. cztery, to czwarty gracz lub pocisk... );


5. Ustaw kursor tam, gdzie ma być 'początek' (góra) duszka na ekranie i wciśnij Shift + nr obiektu PMG, który wybrałeś (np. Shift + 4);


6. Teraz postaw parę piksli na ekranie "w ciemno" (Fire'm), na prawo i poniżej pozycji kursora, gdzie ustawiłeś początek obiektu PMG. Duszka jeszcze nie widać, ale wciśnij kilkukrotnie Shift + "-" (strzałka w górę) - duszek wyłoni się z obłoków ciemności ekranowej i łaskawie pozwoli Ci przeprowadzać dalsze operacje na nim... :-)


7. Widząc duszka, możesz już spokojnie i dokładnie utworzyć go w/g pożądanego kształtu... Użyj przycisku Fire, aby kasować/dodawać piksele tworzące obiekt PMG. Pamiętaj, że na razie maksymalna szerokość PMG, z jaką możesz narysować duszka, to 8 pikseli dla graczy, zaś dwa dla pocisków...

Gdy już narysowałeś parę pikselków obiektu PMG, otwierają się nowe możliwości:


- Shift + "-", "=" zmienia jasność obiektu PMG;


- Shift + "+", "*" zmienia kolor obiektu PMG; Tu uwaga do tych dwóch czynności: zmieniany będzie tylko kolor bieżącego, wybranego obiektu PMG. Zmienianie kolorów PMG działa trochę inaczej, niż w przypadku kolorów "playfield". Ponieważ nowe kolory (PMG) nie są automatycznie umieszczane w każdej linii, zmiany w kolorach PMG będą we wszystkich liniach od pozycji kursora do dołu ekranu lub do innego miejsca, gdzie kolor PMG był poprzednio zmieniany nieco niżej na ekranie. Pewnie wygląda to nieco zagmatwanie, ale ( jak zwykle) praktyka w GED wszystko rozjaśni...


- Przesunięcie kursora na nową pozycję i wciśnięcie Shift + nr obiektu PMG, który edytujesz, spowoduje przesunięcie aktualnego duszka na nowe, wybrane przez Ciebie miejsce. Możesz przytrzymać Shift wraz z nr duszka i przesuwać kursor - jest to przydatne przy dopasowywaniu PMG do gotowego obrazka...


- Klawisz ">" rozciąga duszka dwukrotnie, albo czterokrotnie (zależnie od wciskania tegoż), zaś "<" powoduje jego skurczenie się aż do standardowych rozmiarów włącznie...


- rozmiary, położenie, kolor duszka można zmieniać co 1 linię ( o ile nie ma w danym miejscu większej ilości zmian rejestrów PMG; wówczas te zmiany mogą nastąpić dopiero co drugą, albo nawet co więcej linii... );


- wciśnięcie "T" (oznaczającego pokazanie tzw. palety testowej obrazu) da możliwość zobaczenia, gdzie na ekranie są obiekty PMG (będą one jednak w tym trybie nieco przesunięte w stosunku do normalnego ustawienia, ale to nic nie szkodzi !).


OK, tak więc wiesz już, jak utworzyć obiekt PMG... Teraz wszystko powinno pójść gładko.....


Wypełnianie PMG:

 

Chodzi tu oczywiście o odmianę komendy "Fill" dla duszków. Podobnie jak dla trybu "playfield", PMG także może być wypełniane na dwa sposoby - pełnym kolorem (tzw. solid fill) i 'kratką' (tzw. dithered fill). Obydwa sposoby działają jednak nieco inaczej w trybie "PMG" ( w porównaniu z "playfieldem"). Nie ma tu funkcji wypełniania zaznaczonego ramką obszaru w obiekcie PMG. Tryb wypełniania w wersji PMG po prostu kopiuje bieżące linie obiektu PMG do następnej linii ekranowej. Jak to zrobić:


- dla trybu 'pełnego' (solid) wypełniania:


1. Wciśnij "P", cyfrę z wybranym obiektem, umieść kursor w odpowiednim miejscu i naciśnij Shift + nr obiektu, który używasz, aby ustalić jego (duszka) początkową pozycję na ekranie;


2. Narysuj tym obiektem PMG linię, wciśnij spację, umieść kursor na narysowanej linii, wciśnij Fire i pociągnij joystick w dół (do siebie) - powinno zacząć się wypełnianie obiektu PMG od narysowanej pierwotnie linii aż na dół. Gdy skończysz, naciśnij spację, aby wyjść z trybu Fill.


- aby stworzyć 'kratkowane' wypełnienie w PMG:


1. Postępuj tak jak w punkcie 1. dla 'pełnego' wypełniania, tzn. ustaw duszka...


2. Narysuj obiektem PMG linię, w której widoczny będzie tylko co drugi piksel - będzie to coś na kształt ". . . ." (dla gracza z maksymalną szerokością będą widoczne 4 piksele);


3. Będąc w tej linii wciśnij spację i D oraz podaj z klawiatury numer 0-3 (nie przejmuj się tym, że chwilowo zmieni się położenie linii, którą narysowałeś). U góry ekranu pojawi się kratkowany prostokąt - symbol, że można już przystąpić do wypełniania... Ustaw kursor na narysowanej uprzednio linii, wciśnij Fire i pociągnij joystick do siebie - kratkowany wzór PMG zacznie się pojawiać... Po zakończeniu tego wypełniania wciśnij "D" (przywraca 'pełne' wypełnianie) oraz spację (wyjście z trybu Fill).


A teraz "czas na Colgate"... Sorry, to zgubny wpływ reklam... ;-) ... Oczywiście czas na...


Brushes:

 

...czyli po polsku, czas na pędzle, tudzież szczoteczki... Nas jednak nie interesują tutaj przedmioty do mycia zębów, lecz pomocne przybory malarskie... ;-))

GED pozwala na używanie (w ograniczonej formie) pędzli, których dane może kopiować z obiektów PMG na standardowy obraz ("playfield"). To narzędzie proste, lecz całkiem przydatne. Oto jak je używać:


- tradycyjnie zacznij od wciśnięcia "P", wybierz i ustaw duszka;


- narysuj nim dowolny kształt, ustaw kursor na jego szczycie (początku obiektu PMG), wciśnij "P"... Mała uwaga: pędzel może mieć dowolny kształt i wysokość, z tym, że pierwszą wolną (czystą) linię (od szczytu obiektu) GED uzna za koniec pędzla...;


- Wciśnij "B" - utworzony kształt z obiektu PMG zostanie zapamiętany w pamięci jako brush (pędzel). U góry ekranu pojawi się mały krzyżyk. Jest to oznaczenie trybu "pędzla". Teraz możesz, poruszając kursorem i naciskając Fire, powielać wielokrotnie kształt z "brusha" na ekran, używając aktualny kolor ("brushe" mogą być, niestety, tylko jednokolorowe);


- Wciśnij ponownie "B" lub spację, aby powrócić do normalnego trybu rysowania (wtedy utworzony kształt jest automatycznie kasowany z pamięci).


Inną, z interesujących rzeczy w GED, stanowi...


Piąty gracz:

 

Uzyskuje się go banalnie prosto - poprzez wspólne zgrupowanie wszystkich pocisków w jednym miejscu ekranu i skorzystanie z komendy "M"...

Sposób (z)użycia:

 

"P", po kolei ustawiamy obok siebie pociski (Shift + 5,6,7,8)... Bardzo ważne jest, by były one rzeczywiście jeden obok drugiego !!! Gdy już tak jest, najeżdżamy kursorem na tzw. "szczyt" (punkt początkowy), gdzie ma powstać piąty player i wciskamy "M" - pojawi się toto, mające niezależny od pozostałych czterech graczy kolor i pozostałe jak oni możliwości... Można też tak kombinować, że 5-ty graczy może być widoczny (włączony) tylko w paru liniach ekranu, natomiast nad nim, albo pod nim pociski mogą być rozdzielone (tak jak standardowo ). Jeśli zajdzie potrzeba przesunięcia piątego gracza w inne miejsce, a jesteś w 1. górnej linii ekranowej, to wystarczy przenieść kursor w inne miejsce tej linii i wcisnąć Shift+5 (normalnie odpowiada on za umieszczenie 1. pocisku, lecz gdy włączysz 5. gracza, to Shift+5 będzie sterował położeniem tego nowego duszka!) - wtedy zostanie ustawiona nowa pozycja piątego gracza. Dotyczy to tylko tej pierwszej linii ekranowej !!! Jeśli zechcesz ustawić piątego gracza gdzieś indziej, np. w środku ekranu, każdy pocisk musi być przesunięty indywidualnie - nawet wtedy, gdy opcja piątego gracza jest włączona !


Na razie jednak warto omówić...


Priorytety (uporądkowanie) PMG:

 

Najpierw przedstawię, co można zmieniać klawiszem "F" (priorytet PMG - "Playfield", czyli co [grafika "playfield", czy obiekt PMG] ma się pokazać "z przodu", jako widzialne, a co ma pozostać w ukryciu... :-)

W GED są możliwe do wyboru 4 tryby tego rodzaju priorytetu. Ponumerowałem je w kolejności wciskania klawisza "F" (pierwszy tryb jest automatycznie uruchomiony po załadowaniu GED'a), który to przełącza je po kolei...


1. PMG widoczne jest tylko na kolorze tła (kolor #0) i jest za kolorami "playfield" (#1,#2,#3), tzn. duszki są tam wtedy przysłonięte. Ten tryb jest włączonu i aktywny po uruchomieniu GED'a... Nie bez przyczyny akurat ten, gdyż jest chyba najlepszym do "uzupełniania" standardowej grafiki obiektami PMG. Wyjaśnię to szczegółowo na koniec tego artykułu. Czyli tutaj 1. priorytet = kolory "playfield" (wszystkie), a 2. priorytet = PMG 1-4.


- Info dla koderów: tu ustawiony jest bit drugi (dec #04) w komórce GTIACTL ($d01b).


2. PMG widać na kolorze tła i #3 kolorze "playfield". Na pozostałych kolorach PMG jest przysłonięte. Zatem 1. priorytet = kolory #0 i #1 "playfield", 2. priorytet = PMG 1-4 i 3. priorytet = kolory #2 i #3 "playfield".


- ustawiony jest bit 3. (dec #08) w GTIACTL


3. PMG można zauważyć na wszystkich kolorach "playfield" (#0, #1, #2, #3). Dlatego: 1. priorytet = PMG 1-4, 2. priorytet = kolory "playfield" #0-#3.


- ustawiony jest bit 0. (dec #01) w GTIACTL


4. Widoczne są najpierw duszki #0 i #1, następnie wszystkie kolory "playfield", a po nich duszki #2 i #3 (przysłonięte). Stąd: 1. priorytet = PMG 1-2, 2. priorytet = kolory "playfield" #0-#3, zaś 3. priorytet = PMG 3-4.


- ustawiony jest bit 1. (dec #02) w GTIACTL


Teraz czas na drugi rodzaj ustawialnych w GED priorytetów, uruchamianych klawiszem "O" (z ang. "Overlapping", czyli przesłanianie). Steruje to tym, jak mają się duszki "zachowywać" wobec siebie...


Są dwa typy tego priorytetu:


A. Przesłanianie (początkowo włączone w GED ). W tej "naukowej" tabelce pokazane jest, który PMG jest widoczny na którym...

----------------------------------
\widocz-|PMG 1|PMG 2|PMG 3|PMG 4|
  ność  |     |     |     |     |
nr  \   |     |     |     |     |
----------------------------------
 PMG 1  |  X  |  +  |  +  |  +  |
----------------------------------
 PMG 2  |  -  |  X  |  +  |  +  |
----------------------------------
 PMG 3  |  -  |  -  |  X  |  +  |
----------------------------------
 PMG 4  |  -  |  -  |  -  |  X  |
----------------------------------

Oznaczenia:

"+" - PMG jest widoczny na tym obiekcie,

"-" - PMG nie jest widoczny na tym obiekcie (jest przysłonięty przez inne PMG),

"X" - a to po prostu nic nie oznacza... 8-))


B. Nakładanie

Znacznie mniej rozbudowane od poprzedniego trybu priorytetu...


Polega na tym, że w miejscu gdzie nałożą się na siebie (częściowo lub całkowicie) duszki, odpowiednio 0 i 1 oraz 2 i 3, kolor ich części wspólnej będzie równywartości OR ich kolorów. Mówiąc trochę prościej, gdy nastąpi nałożenie dwóch graczy, to ich część wspólna otrzyma kolor powstały w wyniku operacji logicznej ORA na dwóch kolorach tych graczy. Normalnie duszek może mieć tylko jeden własny kolor. Jeśli jednak "skrzyżuje się" go z innym duszkiem, to wykonując odpowiednią instrukcję ORA, otrzyma się 3-kolorowego duszka (ten dodatkowy, trzeci kolor jest efektem nakładania się dwóch pozostałych...). Ten priorytet (bit 5. w GTIACTL) nazywany jest czasem graczem wielokolorowym. Teraz chyba już wszyscy wiedzą o co chodzi... (?).


Tutaj dwie uwagi do wprowadzania zmian w priorytetach (klawiszami "O" i "F"):


- po każdorazowym załadowaniu grafiki albo czyszczeniu obrazu (Shft+Ctrl+Tab) GED przywraca początkowe wartości w priorytetach (włączony zostaje 1. priorytet PMG-"Playfield", itd. );


- Zmiany w priorytetach działają linię niżej (co NAJMNIEJ, jeśli nie ma dużej ilości zmian rejestrów w tym miejscu) od miejsca ustawienia !


Umieszczanie PMG:

 

Wciśnięcie klawisza Shift+1-8 ustawia poziomą początkową pozycję obiektu PMG, odpowiadającą aktualnej pozycji kursora. To działa trochę odmiennie w zależności od tego, czy kursor jest umieszczony na 1. linii u góry ekranu, czy też gdziekolwiek indziej poniżej. W pamięci istnieje tabela, która przechowuje początkowe atrybuty (właściwości) dla wszystkich rejestrów PMG. Są w niej dane kolorów, priorytetów, szerokości i pozycja 1. duszka. Pozycja drugiego duszka otrzymywana jest przez dodanie do pierwszego jego szerokości. Podobnie jest z trzecim i czwartym duszkiem. Następne w kolejności są pociski. Przed wyświetleniem obrazka wartości z tej tablicy są przepisywane do rejestrów sterujących PMG. W każdej linii ekranowej można zmienić jedną z wartości sterujących PMG. Jeśli zrobisz się to stojąc w 1. linii (gdzie znajduje się tablica atrybutów), to wartość ta będzie wpisana do tablicy. Oznacza to, że w 1. linii można zmienić wszystkie wartości, natomiast w pozostałych, niższych liniach tylko jedną. Jeśli więc najpierw w jakiejś linii zmienisz kolor duszka, a następnie w tej samej linii jego szerokość, to ta zmiana koloru nie zostanie w tej linii uwzględniona. Inaczej będzie w 1. linii ekranowej, gdzie obydwie zmiany będą uwzględnione. Praktycznie rzecz biorąc, to, że 1. linia obrazu ma takie korzyści, dużo nie daje, skoro reszta linii ma dużo mniejsze możliwości... Ale warto wiedzieć o tej różnicy... Acha, pisząc "1. linia obrazu", mam na myśli pierwszą linię na górze ekranu, gdzie można rysować, umieszczać obiekty PMG, itd. (a nie sam szczyt ekranu, powyżej ikon informacyjnych GED'a !)...


Jeśli nie zrozumiałeś dobrze powyższego tekstu o tabeli wartości PMG w GED i ograniczeniach w modyfikacji rejestrów duszków, to... spróbuję to przedstawić trochę inaczej, jeszcze raz, poniżej.


Zmiany w rejestrach PMG nie są automatycznie umieszczane w każdej linii obrazu i taka zmiana rejestru PMG będzie działać (będzie widoczna) w każdej linii, od pozycji kursora, aż do samego dołu ekranu, lub do miejsca poniżej, gdzie ten rejestr był później zmieniany. Dlatego zmiany w PMG działają nieco inaczej w porównaniu z trybem "playfield".

 

Wszystkie atrybuty PMG mają swe wartości początkowe w specjalnej tablicy, która mieści się na szczycie ekranu (tzn. w 1. linii ekranowej). Kiedy kursor jest na samej górze, gdy podajesz programowi jakąś komendę sterującą PMG, ta zmiana zajdzie w tejże tablicy i możesz zmieniać wszystkie wartości atrybutów (właściwości) PMG w ten sposób (Shft + Ctrl + "-" przydaje się, aby przejść na samą górę ekranu). Zatem można tu zmieniać kilka parametrów PMG naraz.

 

Jeśli jednak kursor jest częściowo na dole ekranu, każda komenda dla PMG będzie musiała używać procedury przerwania DLI, która może zmieniać tylko jeden atrybut (np. szerokość duszka) naraz. Po prostu na tylko tyle (dla PMG) pozwala czas w procedurze DLI. Jeśli wprowadzisz jeszcze jedną (inną) komendę dla PMG w tej samej linii, GED będzie szukał najbliższą NIEUŻYWANĄ (jest to linia, która nie zawiera zmiany rejestru PMG; linia ta może zawierać dane koloru "playfield" lub dane obiektu PMG) linię obrazu POWYŻEJ pozycji, którą edytujesz. Kursor zostanie przeniesiony na tę znalezioną, wolną linię, aby dać Ci znać, gdzie została umieszczona komenda. Jeżeli GED natrafi na szczyt ekranu (1. linię ekranową) albo będą sprzeczne (konfliktowe) komendy przed znalezieniem nieużywanej linii, obraz mrugnie krótko, aby poinformować Cię, że ta komenda nie mogła być wykonana. Kursor zostanie umieszczony na konfliktowej pozycji.


Problemy:

 

... są nieodzownym elementem tego świata. Oczywiście nie mogło ich zabraknąć także w GED... ;-)). GED, jako chyba pierwszy program, stosujący nową technikę łączenia wielokrotnych zmian kolorów w linii ekranowej z pełnym wykorzystaniem możliwości PMG, ma także pewne ograniczenia, wynikające po prostu z ograniczeń sprzętowych...

 

Podczas nakładania PMG na kolory "playfield" (wraz ze zmienianiem któregoś z priorytetów) może się zdarzyć, że gdy zapragniemy coś zmienić (np. przenieść lub wykasować) w dokonanej komendzie na PMG, okaże się to (z pozoru) niemożliwe. Szczególnie dotyczy to pocisków. Po prostu mogą "nie chcieć" dać się ponownie zedytować w danym miejscu. Trzeba wtedy próbować różnych kombinacji - zmiany priorytetów, usunięcia najpierw koloru "playfield" z pozycji na której jest duszek, itd. Powinno się udać, tyle że po pewnych staraniach... ;-)

 

Możesz spotkać się z innym problemem, polegającym na tym, że jeśli masz dużą liczbę zmian rejestrów, do czasu gdy GED znajdzie 'nieużywaną linię' (dobrą do zmiany jednego z rejestrów PMG), może być to dość daleko powyżej Twojej pozycji kursora. Wtedy lepsze może okazać się zmienianie innego rejestru i zostawienie tego poprzedniego w "spokoju"... Np. powiedzmy, że masz dwa małe obiekty na ekranie (wypełnione jednym kolorem "playfield" kwadraty, jeden pod drugim), które próbujesz podkolorowć z użyciem PMG. Te obiekty są oddzielone jedną wolną linią skanową (ekranową) między sobą. Wciśnij "P", 2x "F" (zmiana priorytetu - aby PMG pokazało się na kolorach "playfield"), ustaw kursor na lewy górny róg niższego obiektu i wciśnij Shift + 1, by przesunąć gracza na nowe miejsce. "Wpixeluj" duszka i wtedy użyj Shft + strzałki w celu zmiany koloru tego obiektu (zrób to będąc na "szczycie" duszka). Ponieważ ta linia obrazu była już użyta do przechowania zmiany pozycji PMG, GED użyje pustą (wolną) linię między tymi dwoma obiektami. Teraz decydujesz, że drugi (niższy) obiekt musi być większy i potrzebujesz zrobić szerszego gracza, by "zakryć" niższy obiekt. Kiedy wciśniesz ">" w tym punkcie (tzn. w 1. linii drugiego obiektu, albo w pustej linii między obiektami), najbliższa wolna linia (dla zmiany rejestru PMG) jest na samym dole 1. obiektu i zmienianie tam gracza, może zmienić wygląd 1. obiektu... Gdy zachodzi coś takiego, możesz najpierw wcisnąć Shift + 0, aby skasować tą ostatnią zmianę rejestru (niekorzystną dla 1. obiektu). Powinieneś wtedy jeszcze sprawdzić obraz, aby zobaczyć, czy są inne sposoby osiągnięcia tego, czego chcesz. Może się okazać, że nie potrzebujesz dodatkowej szerokości dokładnie w tym miejscu i możesz ją wprowadzić trochę dalej, poniżej tego obiektu. Może także nie być sposobu na zrobienie tego, czego chcesz i jedynym wyjściem jest przejść do edycji innego obiektu, albo zmienić coś w aktualnie 'obrabianym' obiekcie.

 

Są jeszcze inne rzeczy, które możesz robić w "ciasnych" miejscach, włącznie z edytowaniem lub nieznacznym przesuwaniem obiektów w celu umożliwienia zmian rejestrów i umiejętnym 'krzyżowaniem' PMG z 'komórkami koloru' trybu "playfield".

 

Inną sprawą jest to, że jeśli nowa zmiana koloru jest stosunkowo blisko do poprzedniej wartości koloru i nie możesz dokonać tej zmiany dokładnie na pierwszym pikselu, gdzie potrzebujesz koloru, może być ona całkowicie niezauważalna. Ludzie mogą nawet nie zauważyć kilku pikseli w odmiennym kolorze. Ten efekt występuje raz na obrazku "MARTIAN.GED". Czy możesz tam odnaleźć to miejsce ?


Wskazówki do kolorowania:

 

Standardowy tryb priorytetu PMG w GED jest ustawiony tak, aby rysować obiekty PMG za standardowym ("playfield") obrazem. W tym trybie obiekty PMG będą widoczne tylko we fragmentach obrazka, które są "wyczyszczone" (tzn. tam, gdzie jest kolor tła). To jest często najlepsze rozwiązanie, bo możesz tworzyć duszki z maksymalną szerokością i 'maskować' je z przodu którymś z kolorów "playfield" na całym ekranie. Zauważ, ze gdy pociski są jako 5-ty gracz, to tenże obiekt PMG (5. gracz) pojawi się "z przodu" wszystkich kolorów "playfield", bez względu na ustawione priorytety.


Na tym pragnąłbym zakończyć ten (przydługi) opis edytora "GED"... Mam nadzieję, że zachęciłem trochę osób do jego używania i oszczędziłem im męki samodzielnego 'rozgryzania' GED'a, której to "przyjemności" osobiście doświadczyłem. Przygotowując ten opis korzystałem z oryginalnej instrukcji do GED'a autorstwa J.Harrisa oraz sporej ilości własnych spostrzeżeń odnośnie GED.


Dodatkowym plikiem do tego artykułu jest "GEDSTUF2.ARC", w którym jest parę ciekawych obrazków, demonstrujących wykorzystanie GED'a w praktyce. Zawarłem tam też dodatkowe uwagi o GED...



Poprzednia strona: GED - czyli jak ulepszyć grafikę (1)
Następna strona: Grafika komputerowa