Tym kursem chciałbym zainteresować Cię tworzeniem gier w języku Java. Mam ku temu dwa powody.
Po pierwsze, tworzenie gier może sprawiać dużo frajdy. Dużo satysfakcji daje zobaczyć, jak elementy wykreowanego przez nas świata ożywają na ekranie, niezależnie od tego, czy napisaliśmy pasjansa czy trójwymiarową grę przygodową.
Po drugie, tworzenie gier to nie lada wyzwanie. Musimy obsłużyć wczytywanie i wyświetlanie grafiki, obsługę animacji, wykrywanie kolizji, obsługę klawiatury i myszki, zaprojektować interfejs użytkownika, odtwarzać dźwięki i muzykę, a do tego wszystkiego jeszcze mieć na względzie, że nasza gra musi działać płynnie, więc powinna być zoptymalizowana. To wszystko sprawia, że tworzenie gier to świetny trening dla programisty, szczególnie, gdy dopiero rozpoczynasz swoją przygodę z programowaniem. Ja ucząc się programować pisałem właśnie gry.
Ten kurs przedstawia podstawy tworzenia gier w języku Java. Biblioteką, z której będziemy korzystać, jest LibGDX. Jest to wygodne narzędzie umożliwiające:
- wyświetlanie obrazków i animacji,
- obsługę myszki i klawiatury,
- odtwarzanie dźwięków,
- i wiele więcej.
LibGDX może służyć zarówno do prostych projektów, jak i tych bardziej skomplikowanych. Próg wejścia do wykorzystywania tej biblioteki nie jest wysoki, więc z podstawowymi informacjami będziesz mógł zacząć pisać proste gry. W tym kursie nacisk postawiłem na przykłady, więc będziemy uczyli się nowych zagadnień, które następnie wykorzystamy w akcji do napisania prostych gier.
Będę wdzięczny za wszelkie uwagi i sugestie dotyczące tego kursu.
Spis treści
- Wstęp
- Tworzenie szkieletu aplikacji LibGDX
- Analiza pierwszej aplikacji
- Ustawienie rozmiaru okna
- Wyświetlanie tekstur
- Pętla gry, upływ czasu i ruch obiektów
- Obsługa myszy i klawiatury
- Tworzymy grę Puzzle
- Założenia gry
- Różne fazy tworzenia gry w osobnych branchach
- Wstępny projekt
- Wczytywanie obrazu i ustawienia okna
- Podzielenie obrazka na elementy
- Losowanie pozycji elementów układanki
- Rysowanie pól elementów
- Przesuwanie elementów układanki za pomocą myszki
- Sprawdzanie, czy element układanki jest na swoim miejscu
- Ćwiczenia
- Pełny kod źródłowy gry Puzzle
- Tworzymy grę Hello Snake!
- Założenia gry
- Różne fazy tworzenia gry w osobnych branchach
- Wstępny projekt
- Ustawienie rozmiaru okna
- Podstawowa wersja klasy Snake
- Zmiana kierunku poruszania się węża
- Obsługa wychodzenia poza krawędzie okna
- Wyświetlanie jedzenia węża w losowym miejscu okna gry
- Zjadanie jedzenia
- Wykrywanie kolizji
- Ponowne uruchamianie gry
- Zadania
- Pełny kod źródłowy gry Hello Snake!
- Klasa Actor i wykrywanie kolizji
Założenia¶
Przede wszystkim musisz znać Javę na poziomie podstawowym – powinieneś być zaznajomiony z następującymi zagadnieniami: zmienne, instrukcje warunkowe, tablice, pętle, klasy, dziedziczenie, polimorfizm, oraz, w mniejszym stopniu, kolekcje, strumienie, i lambdy. Dodatkowo przyda się wiedza na temat używania linii poleceń.
Nasze projekty będziemy tworzyć korzystając z IntelliJ IDEA. Jest to aplikacja zawierająca m. in. zaawansowany edytor kodu źródłowego. Wystarczy Ci podstawowa znajomość Intellij IDEA – importowanie projektów, dodawania klas, uruchamianie aplikacji.
Do budowania naszych projektów będziemy korzystać z Gradle. Jest to alternatywa dla Mavena. Poza budowaniem projektów, służy on także do zarządzania nimi, a także do łatwego definiowania zależności projektu, bez potrzeby ich ręczne pobierania.
Dlaczego Gradle zamiast Maven? Twórcy biblioteki LibGDX rekomendują to narzędzie i wspierają. Z tego powodu my także będziemy z niego korzystać. Nie musisz mieć żadnej wiedzy na temat Gradle – będziemy go używać w minimalnym stopniu. Gdy przyjdzie czas użycia Gradle, pokażę Ci, jak z niego skorzystać.
Zgodnie z konwencją nazewniczą w programowaniu, w kodzie źródłowym przykładów będę korzystał z anglojęzycznych nazw zmiennych, klas, oraz metod. Jednakże, ewentualne komentarze w kodzie będę pisał po polsku, aby tym bardziej ułatwiały one zrozumienie pewnych zagadnień.
Jeżeli chcesz nauczyć się programować w Javie od podstaw, zajrzyj do mojego kursu Nauka programowania w Javie.
W moim artykule Podstawy linii poleceń dla użytkowników systemu Windows znajdziesz informacje o korzystaniu z linii poleceń, w tym: uruchamianie linii poleceń i wywoływanie komend, przydatne komendy, skróty, oraz ustawienia. Dowiesz się także czym są standardowe wejście i wyjście, przekierowanie komend, i wiele więcej.
Jeżeli chcesz nauczyć się korzystać z IntelliJ IDEA, to zajrzyj do mojego kursu IntelliJ IDEA w akcji.
Docelowe platformy¶
Czytając artykuły w Internecie na temat LibGDX często będziesz widział informacje z podziałem na rodzaj platformy, na której gra ma działać. Dla przykładu, czytając o obsłudze urządzeń takich jak mysz i klawiatura, znalazłbyś także informację o zdarzeniach dotykania przez użytkownika np. ekranu telefonu (touch events). LibGDX pozwala na tworzenie gier nie tylko desktopowych na komputery z systemem Windows, ale także na systemy MacOS, Linux, na telefony, oraz jako aplikacje webowe.
Ten kurs skupia się na podstawach tworzenia gier i jedyną platformą, na którą będziemy tworzyć gry, są komputery z systemem Windows (chociaż powinny one też działać na systemach Linux i MacOS).
Przykłady¶
Przykłady znajdziesz na GitHubie:
Repozytorium przykładów na GitHub
Aby uruchomić konkretny przykład, przejdź z poziomu linii poleceń do jego katalogu i wykonaj komendę gradlew desktop:run, na przykład: