[#1] Efekt Fade Out/In
Pytanie jest następujące: Czy istnieje metoda na tzw. fade out/in wybranego fragmentu ekranu lub bitmapowego tekstu posiadającego paletę jak pozostała część grafiki na tym samym ekranie?
Potrafię rzecz jasna zrobić to, jeśli element graficzny ma przypisane osobne kolory, ale chodzi mi o scenariusz wyżej opisany.
[#2] Re: Efekt Fade Out/In

@Umpal, post #1

Pytanie jest bardzo ogólne i ciężko jest odpowiedzieć co będzie optymalne.

Najłatwiejsza metoda, to animacja takiego elementu, co ma oczywiście minusy. Za to nie ma ograniczeń.
Jeśli fragment ekranu jest poziomym pasem, który to posiada swoją paletę (nawet taką samą jak pozostałe części ekranu), to też nie będzie problemu. Mnusem jest to że musi to być cały taki pas.

Tekst jednokolorowy bardzo łatwo ściemnić bądź rozjaśnić. Minus taki, że ten kolor musi być tylko użyty do tego tekstu. Jeśli masz więcej tekstu (tego który ma nie być ściemniany/rozjaśniany) to rysujesz go innym kolorem (wartość koloru może być taka sama jak tamtem).

Jeśli tekst zajmuje cały pas poziomy to też nie ma problemu.
[#3] Re: Efekt Fade Out/In

@asman, post #2

Rysowanie innym kolorem/kolorami, to wiem, o czym napisałem i potrafię. Chodzi mi o metodę bardziej "hakerską", czyli zmiana palety fragmentu bez naruszenia pozostałej części. A jak odbywa się majstrowanie z paletą w pasie, o którym piszesz? Tak właśnie pomyślałem, że pewnie tylko to wchodzi w rachubę. Tylko jak tak tera pomyślę, że skoro musiałbym cały pas zmieniać, to już chyba lepiej byłoby otworzyć wąski dodatkowy ekran i nie musieć robić "haków".
[wyróżniony] [#4] Re: Efekt Fade Out/In

@Umpal, post #3

A jak odbywa się majstrowanie z paletą w pasie, o którym piszesz?
Modyfikacja palety za pomocą Coppera w odpowiedniej linii ekranu.
[wyróżniony] [#5] Re: Efekt Fade Out/In

@Umpal, post #3

A mógłbyś zdradzić w jakim języku to piszesz, wtedy będzie można dopasować rozwiązanie.

O Coperze już wspomniał Krashan. Można też prockiem czekać na odpowiednią linię i też zmieniać kolory, ale jako że w coperze to jakoś łatwiej idzie, to znakomita większość tak robi.
[#6] Re: Efekt Fade Out/In

@asman, post #5

@asman - AMOS

@Krashan - OK
[#7] Re: Efekt Fade Out/In

@Umpal, post #6

W Amosie to sie robi sztuczki w stylu otwierania wielu nowych ekranów - jak pamiętam.
[#8] Re: Efekt Fade Out/In

@asman, post #7

Tak, tak. Problem w tym, że tła nie da się zrobić przeźroczystego, więc w grę wchodzi tylko jednolite, identyczne z tym pod spodem (ew. jakaś sensowna kompozycja, ale to jest zależne od tego, co tam na ekranie się wrzuci (pomijam dual playfield, gdzie ilość kolorów jest mocno ograniczona)).
Generalnie chodzi mi o taki efekt, jak np. w Turricanie II w głównym menu, gdzie napisy pojawiają się i znikają. Ale nawet tam tło jest czarne, więc całkiem możliwe, że to ta sama sztuczka.
[#9] Re: Efekt Fade Out/In

@Umpal, post #8

Efekt o którym mówisz to bardziej przenikanie kolorów. Najłatwiej zrozumieć to na jednokolorowych fontach. Masz dwa bitplany, czyli cztery kolory i najpierw rysujesz tekst na pierwszym bitplanie (czyli tu potrzebujesz koloru 01 - $dff182 by tekst był widoczny). Ustalasz kolory na takie, 0 - 000, 1 - $fff, 2- 000, 3 - 000. Na ekranie masz biały tekst. Teraz weź narysuj inny teskt na drugim bitplanie (czyli kolorem 02 - $dff184). Powinieneś zobaczyć że on częsciowo pokrywa ten pierwszy teskt - są czarne dziury. Teraz załataj te dziury zmieniając kolor 03 na $fff. Będziesz miał widoczny tylko napis pierwszy, ale jeśli zrobisz swapa na kolorze 02 i 01 to będziesz miał napis 2.

Podsumujmy i popatrzmy na palety
$000,$fff,$000,$fff) - pierwszy napis
$000,$000,$fff,$fff) - drugi napis

Zatem by zrobić przeniknięcie to trzeba robić fade na dwóch kolorach: 01 i 02. Zatem najpierw rysujesz obydwa napisy i ustawiasz palete pierwszą. poterm fade do palety drugiej. teraz nadpisujesz napis pierwszy na jakiś inny i robisz znowu fade do palety pierwszej, potem nadpisujesz napis drugi i tak dalej...

W turicanie napisy są trzykolorowe (tak ja myśle), czyli trzeba mieć 4 bitplanowy ekran i odpowiednio zmieniać kolory.

Jak pamiętam to gdzieś ta sztuczka była opisana w jakiejś gazecie amigowej, ale nie pamiętam w jakiej, kołacze mi się C & A, ale głowy nie dam.

Próbowałem to robić w amosie, ale on jest jakiś dziwny bo ja nie potrafie napisać stringa na pierwszym bitplanie a potem drugiego na drugim bitplanie, tak by obydwa napisy koegzystowały. Próbowałem z gr writing 2 i amos jakoś pokrętnie to robi bo umieszcza napis nie na tym bitplanie i mi się w głowie mąci. Jeśli ktoś zna rozwiązanie tego problemu w amosie to z góry dziękuje.
[#10] Re: Efekt Fade Out/In

@asman, post #9

Metoda, którą opisałeś jest dokładnie tą samą, o której wspomniałem na wstępie - tekst/grafika do wygaszenia lub pojawienia się na osobnym kolorze. Takie coś działa w AMOS-ie bez problemu. Zrobiłem to w grze, którą jakiś czas temu udostępniłem (jest tam Star Wars scroll, który gdy się wciśnie ESC lub doczeka do końca znika na tle gwiazd). To działa, ale musi być na odrębnych kolorach. Natomiast mi chodziło o wygaszenie, a dosłownie manipulowanie paletą wybranego fragmentu ekranu bez wpływu na pozostałą grafikę, która także korzysta z tej samej palety. Pewne wyobrażenie daje program graficzny Brilliance, gdzie w opcji palety wyświetlana jest jednocześnie ilość kolorów niedostępnych na OCS/ECS (zaznaczyłem obszary żółtymi prostokątami):



To bez wątpienia jakiś hak, pytanie jak uzyskany? Odpowiedź mogłaby pomóc w uzyskaniu efektu, o który mi chodzi.
[#11] Re: Efekt Fade Out/In

@Umpal, post #8

Jedyna metoda poprzez zmianę palety to użycie coppera. Użycie ekranów ma wadę w postaci "pustych" linii pomiędzy (widać to np. na wskaźniku myszy). Wracając do coppera to można użyć odpowiednich komend typu copper ___ itp. Raczej trudne. Łatwiej będzie użyć komendy rainbow.
[#12] Re: Efekt Fade Out/In

@cholok, post #11

Tak, ta czarna linia nad przesuwanym kursorem jest kiepska, ale cóż poradzić.
A mówiąc o copperze, to czy nim da się zmienić wybrany piksel w osi X, czy tylko całą linię? Do tej pory widziałem zmiany tylko całych linii (aka sławetna tęcza).
[#13] Re: Efekt Fade Out/In

@Umpal, post #12

Copper może zmieniać kolor w osi X, ale ma to swoje duże ograniczenia. Cop Move zajmuje 8 pikseli czasu, Cop Wait 16. Tu trzeba poczytać hardware manual, bo bez tego ani rusz.
[#14] Re: Efekt Fade Out/In

@cholok, post #13

Myślę, że w AMOS-ie nie warte takiego zachodu, bo już zdążyłem zauważyć, że nawet AMAL-owe, czyli rzekomo asemblerowe sztuczki bywają gorsze od tradycyjnie uzyskanych efektów (porównałem kilka takich, co niby AMAL miał przyśpieszyć, a w efekcie albo było tak samo, albo nawet odwrotnie. Oczywiście AMAL ma kilka zalet, tego nie neguję).
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem