[#16]
Re: Programowanie grafiki 2d
@robwor,
post #11
To zależy na jakim poziomie doświadczenia jesteś. Taka szkółka dotyczyć by mogła pisania gier na wielu płaszczyznach.
Z tego co napisałeś to podejrzewam, że chodzi Ci o klasyczne produkcje bitmapowe na Amigę. Takie możesz uzyskać w bardzo łatwy sposób w AMOSie, jest tam mnóstwo specjalizowanych funkcji przeznaczonych do wymienionych przez Ciebie celów.:
- ładowanie screenów (w AMOSie piszesz Open Screen i Load Iff)
- wykorzystanie spriteów i bobów (jest szereg komend do tego przeznaczonych)
- obsługa klawiatury, joya i myszki (jak wyżej)
- efekty fade-in, fade out (w AMOSie piszesz po prostu jedno słowo: Fade n gdzie n to prędkość i sprawa załatwiona).
Także AMOS mógłby Cię usatysfakcjonować. Możesz poszukać jakiegoś podręcznika do AMOSa w Internecie, jest ich kilka. Ja mam (i właśnie do niego zaglądam) - autorstwa Pawła Chadzińskiego. Jedyną wadą AMOSa jest tylko to, że nie skorzystasz z możliwości nowszych Amig z kościami AGA.
Alternatywą dla AMOSa jest jeszcze BlitzBasic, ale tu się nie wypowiem bo nie miałem z nim styczności.
Kolejna płaszczyzna to programowanie np. w ANSI C lub C++ pod system. Zaletą takiego rozwiązania jest większa kontrola nad programem, jak i możliwość skorzystania z możliwości kości AGA i kart graficznych i po prostu "bycie na czasie", czyli dostęp do stale rosnącej bazy bibliotek, przeznaczonych do przeróżnych zastosowań. Dokumentację do tego uzyskasz z wielu podręczników udostępnionych w Internecie oraz płytach kompaktowych w rodzaju Amiga Developer v1.1/v2.1 (zawiera pełną dokumentację systemu Amigi). Musisz najpierw zaznajomić się z językiem C (asembler pomijam, bo nie jest on konieczny). Podobne do wymienionych wyżej operacje uzyskasz w bardziej złożony sposób poprzez wywoływanie funkcji systemowych.
Na przykład do obsługi klawiatury, joya i myszki użyjesz tzw. urządzeń:
- gameport.device - do joysticka,
- input.device - do klawiatury i myszki
- timer.device - do liczenia czasu
Każdy device trzeba najpierw otworzyć funkcją OpenDevice() z biblioteki exec.library i można korzystać z jej dobrodziejstw. Wszystko dokładnie opisane jest w Amiga Developer CD v2.1. Jeśli chcesz otworzyć ekran i załadować obrazek korzystasz z funkcji OpenScreenTagList() intuition.library i ładujesz plik IFF poprzez funkcje iffparse.library. Jest to naprawdę całkiem proste jak już się zaznajomisz. Efekt fade uzyskasz zmieniając kolory palety w pętli poprzez LoadRGB32(). Polecam zaznajomienie się z programowaniem pod system Amigi, jest to naprawdę przydatna rzecz.
Kolejna płaszczyzna to programowanie z użyciem bibliotek takich jak SDL (Simple Directmedia Layer). Sam z nich nie korzystałem, jednak wiem że służą temu, by w prosty sposób obsługiwać grafikę 2D, 3D, muzykę i dźwięk i właśnie klawiaturę, myszkę. Wadą tej biblioteki jest jednak to, że programy z nich korzystające będą działać wolno na starszych modelach Amig, zaletą jest to że Twoja gra będzie mogła działać na szerokiej gamie platform.
Reasumując wybierz płaszczyznę Ci odpowiadającą i zaznajom się z nią, a będziesz mógł pisać gry we własnym zakresie. Taka szkółka mogłaby być czymś fajnym, sam się trochę rozpisałem, może, jak znajdę czas, to napiszę co nieco o programowaniu gier pod system Amigi, bo sam ostatnio dużo piszę na Amidze.
Pozdrawiam.
Ostatnia modyfikacja: 03.01.2010 23:50:45