PyGame – pierwsze podejście do tworzenia gry 2d

W ciągu ostatnich kilka miesięcy przetestowałem mniej lub bardziej dogłębnie kilka bibliotek do tworzenia gier 2d, w celu znalezienia tego optymalnego dla mnie. Najlepsze efekty jak dotąd dawał mi język Lua i framework LÖVE, jednak dziś rolę lidera mojej klasyfikacji objął bezdyskusyjnie Python i biblioteka PyGame.

PyGame daje dużą szybkość uczenia się oraz znikomą ilość problemów związanych z samą biblioteką, zatem mogę się skupić na problemach dotyczących mechaniki mojej gry. Podstawy Pythona oraz tworzenia gier 2d posiadłem już wcześniej, natomiast PyGame ma dobrą dokumentację, łatwo dostępną choćby poprzez wyszukiwarkę Google, więc bez przeszkód na starcie, zacząłem pisać. Oto co udało mi się uzyskać po pierwszych kilku godzinach pisania (mocno przerywanych innymi zajęciami):

Grafiki kupiłem w serwisach Fotolia oraz GameDevMarket

Zaimplementowane elementy:

  • wyświetlanie grafik
  • animacja postaci
  • sterowanie postacią (point and click)
  • przechodzenie postaci pomiędzy piętrami (ukryta klatka schodowa)
  • menu startowe z elementami GUI

Wszystko zaimplementowałem obiektowo, wydzielając takie klasy jak:

  • game
  • player
  • menu
  • levels/level1
  • gui/click_pointer
  • gui/menu_button

Zapewne klas tych pojawi się znacznie więcej w dalszych iteracjach refactoringu. Warto zaznaczyć, że od razu napisałem kod tak, żeby można było napisać klasy kolejnych poziomów i podłączyć je, bez zmian w kodzie samej gry.

Kod gry udostępniłem publicznie na GitHub:
https://github.com/jakubthedeveloper/kuba-pygame1

A oto algorytm jaki zastosowałem do przechodzenia postaci między piętrai do punktu docelowego:

 

Skomentuj