SILNIK JAKO MULTIMEDIA W poprzednim odcinku opisany byī sposób wykonania ruchomego silnika na jednym obrazku. Silnik to jednak nie tylko przykīad obiektu ruchomego, ale równieū doōź haīaōliwego. Poniewaū Amiga jest komputerem multimedialnym, nic nie stoi na przeszkodzie, aby wykonaź taki model. Stanisīaw Wėsīawski Zaīoūenie jest podobne jak w poprzednim wypadku. Wykonujemy ruchomy model silnika czterosuwowego do celów edukacyjnych. Interesuje nas pokazanie charakterystycznych etapów pracy takiego silnika, czyli ssania, sprėūania, pracy i wydechu. Poniewaū tym razem zaleūy nam na udświėkowieniu obrazu, nie ma potrzeby robiź oszczėdnoōci w warstwie "malarskiej". Pierwszym etapem pracy jest przygotowanie rysunku wszystkich faz pracy silnika. Poniewaū pracujė na Amidze posiadajācej 2,5 MB RAM, wykonujė taki rysunek w moim ulubionym formacie, tj. 16-kolorowy hi-res lace. Czytelnicy posiadajācy mniej pamiėci RAM, powinni raczej rysowaź w formacie lo-res. Dzielimy ekran na osiem czėōci, zakīadajāc, ūe kaūda faza pracy silnika reprezentowana bėdzie przez dwa obrazki. Rysunek zaczynamy od narysowania przekroju waīu korbowego (koīa) i powielenia go osiem razy na rysunku za pomocā opcji GRID. Oczywiōcie moūemy rysowaź Deluxe Paintem, Personal Paintem czy Brillancem. Wszystkie przyzwoite programy malarskie majā moūliwoōź rysowania i przenoszenia brusha za pomocā siatki. Zaczynamy od górnego skrajnego poīoūenia tīoka. Na przekroju waīu (kole) zaznaczamy cztery gīówne poīoūenia korbowodu. Wyznaczamy oō symetrii i na kolejnych czterech rysunkach rysujemy jednakowej dīugoōci kreskė (schemat) korbowodu, biegnācā od znaku na wale korbowym do osi symetrii. Rzecz jasna, najīatwiej wykonaź poīoūenia skrajne -- dolne i górne, ale i z pozostaīymi nie powinno byź wiėkszego kīopotu. Po wīāczeniu wyōwietlania koordynat ekranu i "przyczepieniu" jednego koļca odcinka do punktu na wale korbowym ciāgniemy drugi koniec odcinka po linii symetrii w górė lub w dóī tak dīugo, aū koordynaty pokaūā nam, ūe odcinek jest odpowiedniej, zaīoūonej przez nas, dīugoōci. Cztery pierwsze rysunki kopiujemy do nastėpnych czterech, poniewaū od piātego do ósmego rysunku ruch korbowodu bėdzie taki sam jak w pierwszych czterech. Rysujemy wypeīniony prostokāt tīoka i "wycinamy" w nim otworek w miejscu sworznia tīokowego. Nakīadamy tīoki cztery razy na rysunek, dokīadnie pionowo nad przekrojem waīu, tak aby w otworku pojawiī siė górny koniec kreski korbowodu, i powielamy na dole. Podstawowa sprawa jest gotowa -- mamy osiem poīoūeļ tīoka, które moūna opisaź kolejno tak: tīok w górnym poīoūeniu -- korbowód pionowo, tīok w ōrodku -- korbowód przechyla siė dolnā czėōciā w prawo, tīok na dole -- korbowód pionowo, tīok w poīoūeniu ōrodkowym -- korbowód przechylony w lewo. Dalej dokīadnie to samo, znowu cztery razy. Teraz moūna dorysowaź przeciwwagė na wale korbowym i wykonaź bardziej realistyczny rysunek korbowodu. Nastėpnym elementem jest schematyczny rysunek korpusu silnika z zaznaczonym wlotem mieszanki z gaśnika i wylotem spalin. Na schemacie zaznaczamy jeszcze ōwiecė zapīonowā i nakīadamy (pod GRID) na wszystkie osiem rysunków. Jeūeli przezornie wykonaliōmy wszystkie czėōci silnika odrėbnymi kolorami, jest teraz wīaōciwy moment na wykonanie realistycznych cieniowaļ czėōci silnika. Jak to zrobiź, wyjaōniaīy kolejne odcinki "Deluxe Paint w praktyce". Nastėpnym elementem sā zawory. Zawór ssācy (po prawej) uchylony jest na rysunku drugim i trzecim -- opadanie tīoka, a zawór wydechowy (po lewej) na ósmym i pierwszym -- gdy tīok idzie w górė. Dopiero te zmiany zakīócajā podobieļstwo górnych czterech rysunków do czterech dolnych. Koļczymy rysunki, wypeīniajāc kolorami wnėtrze cylindra. Mieszanka podczas napeīniania bėdzie w odcieniach szaroōci, a eksplozja mieszanki i jej spalanie oraz wydalanie spalin w odcieniach od ūóītego do brunatnoczerwonego. Cieniowanie wykonujemy koliōcie, np. FILL TYPE CIRCLE z Deluxe Paint, a moment zapīonu przedstawiamy umieszczajāc w centrum eksplozji jaskrawoūóīty kolor. Uzyskujemy w ten sposób osiem rysunków, które juū zdecydowanie róūniā siė miėdzy sobā. Kolejny etap pracy wymaga chwili zastanowienia. Poniewaū zadanie jest stosunkowo skromne, wystarczy wybraź jakieō dwa charakterystyczne dświėki. Jeden to dświėk zapīonu mieszanki, drugi -- szum ssania lub wydalania gazu z cylindra. Do tego celu naleūy wybraź jakiō program, który pozwala na wykonanie kilku manipulacji na samplu i zapisanie go w formacie IFF.8SVX. Najlepszy do tego celu jest popularny File Master III. Bez trudu moūemy zdobyź jakiō efekt typu "buum!", nieco gorzej jest z szumem, ale ten efekt z kolei īatwo jest zrobiź z, dosīownie, byle czego. Oglādamy starannie efekt eksplozji na ekranie i w razie czego przycinamy do wīaōciwej dīugoōci, wykonujāc īagodne wyciszenie na koļcu. Szum wybieramy z "szumopodobnych" dświėków, deformujāc odpowiedni kawaīek. Chodzi nam tylko o dświėkowy efekt powietrza przechodzācego przez rurė. Dīugoōź trwania sampla jest waūna z tego wzglėdu, ūe jakkolwiek przyszīa animacja bėdzie prosta i doōź wolna, to jednak efekty akustyczne nie powinny trwaź dīuūej niū jedna, dwie klatki. Wynik pracy zapisujemy jako BUM.8SVX i SZUM.8SVX. Poniewaū dświėk eksplozji towarzyszy piātemu fragmentowi rysunku, wygodnie jest zaczynaź od tego wīaōnie miejsca. Po usuniėciu linii podziaīu na rysunku wycinamy poszczególne kawaīki obrazka i zapisujemy na dysku kolejne brushe: piāty kawaīek jako S1, szósty -- S2, siódmy -- S3, ósmy -- S4, pierwszy -- S5, drugi -- S6, trzeci -- S7 i czwarty -- S8. Podsumowujāc -- mamy teraz osiem maīych obrazków (brushy) silnika i dwa efekty akustyczne. Czego brakuje? Tylko tīa, na którym wyōwietlane bėdā obrazki i programu, który zrobi nam z tego prezentacjė multimedialnā. Tīo wykonujemy w postaci obrazka w kolorach i formacie zgodnym z kolorami i formatem brushy silnika. Poōrodku planszy umieszczamy prostokātne okno w kolorze tīa (czarnym) i dokīadnie o wymiarach brusha. Zapisujemy parametry lewego górnego naroūnika i wymiary okna (lub brusha) w pionie i poziomie. Najwaūniejsza sprawa to oczywiōcie program. Mamy tu do dyspozycji paletė jėzyków typu BASIC, takich jak Amiga BASIC, HiSoftBASIC czy AMOS. Dalej dla wtajemniczonych jėzyki C lub E oraz dla mistrzów -- asembler. Poniewaū jednak zupeīnie to nie pasuje do formuīy serialu "Zrób to sam", siėgamy po program do prezentacji. W tym wypadku równieū dysponujemy pewnym wachlarzem programów do wyboru, ale muszė tu podzieliź zdanie pana Bruszewskiego, ūe najbardziej wygodny do tego celu wydaje siė Director. Bardziej sumiennych Czytelników odsyīam do artykuīów "Mikro-Kino" w numerach 2. i 3. Magazynu AMIGA z 1992 roku. Director pozwoli nam wyōwietliź obrazek planszy tīa, zmieniaź po kolei fazy pracy silnika w oknie tīa i w odpowiednim momencie odtwarzaź efekty akustyczne. Za pomocā edytora tekstu lub wīasnego edytora programu Director piszemy skrypt: SETBLACK LOAD 9,"kino:obrazki/plansza"; FOR n=1 to 8 LOAD n,"kino:obrazki/s";n NEXT MODULE "kino:muzyka/smus" SMUS "LOAD",1,"kino:muzyka/bum.8svx" SMUS "LOAD",2,"kino:muzyka/szum.8svx" p=4 FADE /start FOR n=1 to 8 BLIT n,0,0,216,137,209,257 BLITDEST 9 PAUSE p DISPLAY 9 IF n=1 THEN SMUS "PLAY",1 IF n=4 THEN SMUS "PLAY",2 IF n=6 THEN SMUS "PLAY",2 NEXT GOTO start Teraz trochė wyjaōnieļ. Dyskietka z "materiaīem" nosi nazwė (jak to zalecano w "Mikro-Kinie") KINO, brushe silnika i plansza mieszczā siė w szufladzie OBRAZKI, efekty dświėkowe w szufladzie MUZYKA, tekst skryptu w szufladzie PROJEKTY. Po wyjaōnienie znaczenia SETBLACK i FADE odsyīam do "Mikro-Kina", zresztā īatwo zgadnāź. Dlaczego "Load 9..."? Otóū zaīadujemy osiem brushy silnika do oōmiu banków pamiėci o numerach podobnych do nazw brushy, np. bank 1. Do odtwarzania sampli w formacie IFF.8SVX potrzebny bėdzie jeszcze moduī Directora o nazwie SMUS, naleūy go przegraź do szuflady KINO:MUZYKA. Rozkaz SMUS "LOAD"... īaduje dwa efekty dświėkowe do dwóch banków pamiėci dświėku, które majā tu numery 1 i 2, co zupeīnie nie koliduje z identycznymi numerami banków pamiėci obrazu. W pėtli FOR...NEXT, typowej dla jėzyków typu BASIC, komendā BLIT wycinamy obrazek z banku i przenosimy go do innego. Przypominam parametry BLIT: numer banku, z którego wycinamy, "x" górnego lewego naroūnika wycinanego fragmentu, "y" górnego lewego naroūnika wycinanego fragmentu, szerokoōź wycinanego fragmentu, wysokoōź wycinanego fragmentu, "x" górnego lewego naroūnika miejsca wklejania, "y" górnego lewego naroūnika miejsca wklejania. Komenda BLITDEST 9 podaje bank przeznaczenia, czyli w naszym wypadku bank nr 9, wyōwietlajācy planszė tīa na ekranie. Po przerwie spowodowanej komendā PAUSE, komenda DISPLAY wyōwietla kompletny obrazek na ekranie. Za pomocā IF..THEN uruchamiamy podczas wyōwietlania konkretnych klatek efekty dświėkowe. Raz "bum" podczas zapīonu -- klatka nr 1 i dwa razy "szum" podczas zasysania mieszanki i wydalania spalin -- klatki 4. i 6. Z edytora programu Director wychodzimy komendā Run, która umieszcza w RAM-ie "film" i wyōwietla go na ekranie. Pojawia siė plansza z silnikiem, który powoli porusza tīokiem i zaworami, haīasujāc przy tym. Silnik pracuje w pėtli i jego pracė moūemy przerwaź klawiszem myszy. Teraz moūemy podregulowaź parametrem "p" przerwy miėdzy klatkami animacji lub poprawiź ewentualne bīėdy. Z RAM-u przenosimy plik o nazwie "silnik.film" i umieszczamy go w szufladzie KINO:FILMY. Teraz mamy juū kompletny materiaī do prostej demonstracji zasady dziaīania silnika czterosuwowego i tylko od naszej cierpliwoōci (i trochė od posiadanego sprzėtu) zaleūy, czy wzbogacimy go o inne dodatki, takie jak np. zmienna prėdkoōź pracy silnika, wiėcej ruchomych detali, bardziej zróūnicowany dświėk itd.