Pisząc ten artykuł zastanawiałem się czy przypadnie wam do gustu. Mam nadzieję, że tak:). Więc… Na dzisiejszej lekcji zajmiemy się wyświetlaniem bitmap za pomocą DirectDraw(jej:).

Podstawową zmianą będzie użycie DirectDraw4, aby nasz program działał już na komputerach z DirectX6 (o ile ktoś takie jeszcze ma:). Wyświetlenie bitmapy nie jest trudne. Wystarczy zadeklarować odpowiednie zmienne. Ale zanim do tego przystąpimy nauczymy się obsługi klawiatury z WinApi. Zaczynamy od zadeklarowania odpowiedniej zmiennej:

Tablica ta będzie nas informować które klawisze są aktualnie wciśnięte a które nie:P. Korzystając z tej techniki nie potrzebujemy już DirectInput (hehe… : ] ). To powinno zaspokoić nasze potrzeby. Następnym etapem jest uwzględnienie odpowiednich zdarzeń w WndProc( w poprzednim artykule zwało się to WindowProc). Chodzi mi o zdarzenia już wcześniej wam znane z zakładki Events w Object Inspektorze – KeyUp i KeyDown. Ich odpowiedniki będą wyglądać tak(uważaj na mWParam w poprzednim tutorialu 🙂 nazywał się on WParam) :

To wszystko. Teraz w głównej pętli możemy sobie kontrolować stany klawiszy(true i false). Numer komórki tablicy odpowiada kodowi klawisza który jest zgodny z kodem ASCII(tródno żeby nie był: )Jeśli jakiś klawisz został wciśnięty to informacja o tym trafi do naszej jakże wspaniałej tablicy. Pewnie zapytasz : Czemu opisuje tutaj WinApi?. Ja odpowiem : Ponieważ szanowny pan Nakiel(główny wodzu) nie przewidział działu dla WinApi : ]. Dobra. Teraz czas na zmiany. Nasze programiki będą(są) coraz bardziej obszerne więc należało by je podzelić(skawałkować : ). Stworzymy pewne Unity, których póki co liczba wyniesie 3 :
MDirectDraw.pas – Odpowiada za różne rzeczy związane z DirectDraw(od inicjalizacji po wyświetlanie).
MWinApi.pas – Różne procedury i funkcje powiązane z WinApi(np. WindowProc).
Zmienne.pas – Jak sama nazwa wskazuje będą tam głównie zmienne.
Możesz je sobie ściągnąć(z całą resztą:) u dołu tego artykułu(no bo niby gdzie indziej : ). Czy to koniec??? Na pewno nie!!! Przed nami jeszcze daleka kręta(heh:) droga. Teraz nastał czas na zadeklarowanie nowych zmiennych powiązanych z DirectDraw.

Teraz czas na funkcję inicjującą DirectDraw. Tu dużo nam przybyło. Sami zobaczcie:

A oto procedura wyświetlająca. Umieszczamy ją w głównej pętli.

To wszystko. Wyświetlanie bitmap w DirectDraw nie jest trudne(jak widać:).

Na następnej lekcji omówię buforowanie(żeby nie mrugało : ).

Autor: HNB