GDI

Zaimplementuj aplikację, która pozwala rysować przy pomocy myszki po oknie głównym. Rysowanie odbywa się po wciśnięciu lewego klawisza myszy domyślnym piórem. Dodaj do programu możliwość zmiany koloru posaka oraz zmiany jego grubości.

Przydatne funkcje

  • funkcja GetDC uzyskuje uchwyt do DC (device context)
  • funkcja ReleaseDC() zamyka DC
  • funkcja MoveToEx przesuwa pióro do wskazanej pozycji
  • funkcja LineTo rysuje linię do wskazanej pozycji
  • komunikaty WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE wołane w czasie zdarzeń związanych z myszą (wciśnięcie lewego klawisz, zwolnienie lewego klawisza i ruch myszą)
  • finckja ChooseColor() z biblioteki Commdlg.h tworzy okno dialogowe umożliwiające wybrać kolor.

Zaimplementuj grę Space Invaders.

computerarcheology.com_arcade_spaceinvaders_spaceinvaders.jpg

Gracz porusza za pomocą klawiszy pojazdem kosmicznym w lewo i w prawo oraz oddaje strzał po wciśnięciu spacji. Wrogie statki kosmiczne poruszają się automatycznie i w losowych odstępachch czasu oddają strzał do pojazdu gracza. Każdy zestrelony statek wroga zwiększa wartość punktów wyświetlanych na liczniku u dołu ekranu. Sprity (statek gracza i wrogie statki) zrealizowane są za pomocą bitmap. Przygotuj własne animacje (bitmapy) lub skorzystaj z poniższych grafik:

invaders.bmp

Przydatne funkcje

Device Context

  • GetDC - uzyskanie uchwytu do DC (device context)
  • ReleaseDC
  • BeginPaint - przygotowanie okna do rysowania dla komunikatu WM_PAINT
  • EndPaint

Obiekty GDI

Kształty i rysowanie

Timer

  • SetTimer - uruchomienie stopera
  • komunikat WM_TIMER wysyłany po określonym czasie od uruchomienia czasomierza
  • KillTimer - zatrzymuje (zabija) stoper

Sterowanie

Zmodyfikuj grę space invaders w taki sposób aby rysowanie sceny oraz znimacje realiowane były w osobnym wątku.
Przydatne funkcje: