LibGDX Wprowadzenie Tutorial

Na pewno ucząc się programowania nie raz myśleliście nad stworzeniem jakiejś gry. Dla wielu jest to często powód dla których w ogóle zaczynają interesować się programowaniem. Istnieje obecnie wiele framworków i bibliotek które ułatwiają nam stworzenie pełni funkcjonalnych gier. Osobiście już jakiś czas temu zainteresowałem się LibGDX.

 
LibGDX to narzędzie do tworzenia gier wykorzystujący język Java. Za jego pomocą możemy stworzyć gry na androida ale również na iOS, komputery czy przeglądarkę. Samo narzędzie jest rozbudowane i daję wiele możliwości. Za jego pomocą stworzono takie tytuły jak wydany przez Google „Ingress”, Moy 4 (obydwie ponad 10mln pobrań) czy Five Nights at Freddy’s 3.
 
Samo rozpoczęcie korzystania z LibGDX jest stosunkowo łatwe będzie nam potrzebne:
 
LibGDX – https://libgdx.badlogicgames.com/download.html
Gradle – http://gradle.org/gradle-download/
Nasze ulubione IDE w moim wypadku Eclipse.
 
Pobieramy Gradle jest to narzędziem do automatyzacji procesu budowania projektu. Rozpakowujemy je w odpowiadającej nam lokalizacji i dodajemy jej ścieżkę do zmiennych środowiskowych. Jeśli wszystko poszło prawidłowo powinniśmy móc sprawdzić naszą wersje Gradle w wierszu poleceń (cmd) za pomocą następującej komendy:
 

gradle -v

 
Następnie ściągamy plik gdx-setup.jar ze strony LibGDX i go uruchamiamy (musimy mieć zainstalowaną sdk javy). Powinniśmy otrzymać panel z opcjami do przygotowania projektu.
 
Name: Nazwa naszego projektu
Package: Pakiet dla naszego projektu
GameClass: Główna Klasa projektu
Destination: Gdzie zapisać nasz Projekt
Android: Lokalizacja naszego Android SDK
 
W Sub Projects wybieramy dla jakich rodzajów urządzeń chcemy by działała nasza aplikacja. Nazwy są samo wytłumaczalne. Kolejna sekcja Extensions to dodatkowe biblioteki dla naszej aplikacji. Jeśli tworzymy prostą aplikacje 2D zapewne będziemy potrzebowali bibliotekę Box2D która zawiera fizykę dla obiektów 2 wymiarowych. W razie potrzeb możemy pobrać też inne biblioteki jak framework dla sztucznej inteligencji czy oświetlenie dla obiektów 2d. Przy kliknięciu Show third part extensions możemy jeszcze dodać biblioteki które nie są wspierane przez LibGDX ale mogą nam pomóc przy projekcie. Jeśli chcemy by został utworzony projekt dla Eclipse wchodzimy w zakładkę advanced i wybieramy Eclipse. Mój projekt wygląda następująco. Klikamy Generate
 
setup
 
Włączamy eclipse. Jeśli nie mamy w nim zainstalowanych Narzędzi dla Gradle instalujemy je. Wchodzimy w Help – Eclipse Marketplace wpisujemy w wyszukiwarkę Gradle i wybieramy Gradle (STS) Integration For Eclipse i po instalacji restartujemy IDE.
 
gradle eclipse
 
Pozostaje nam zaimportować projekt. Wybieramy File ->Import odszukujemy nowy folder Gradle(STS) i wybieramy Gradle (STS) Project tam podajemy ścieżkę gdzie eksportowaliśmy projekt libGDX. Następnie klikamy Build model. Nic nie zmieniamy i klikamy Finish.
 

import

import
 

Zostanie nam stworzone tyle projektów ile zaznaczyliśmy platform plus dodatkowe dwa. Większość kodu będziemy pisać w projekcie core który domyślnie wygląda tak:
 

package com.binaryalchemist.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MainGame extends ApplicationAdapter {
	SpriteBatch batch;
	Texture img;
	
	@Override
	public void create () {
		batch = new SpriteBatch();
		img = new Texture("badlogic.jpg");
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(1, 0, 0, 1);
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
		batch.begin();
		batch.draw(img, 0, 0);
		batch.end();
	}
	
	@Override
	public void dispose () {
		batch.dispose();
		img.dispose();
	}
}

 
Widzimy tu głównie 3 funkcje create, render i dispose. Cykl życia dla libgdx wygląda następująco.
 

life
 
Jak widać tutaj nadpisujemy jedynie trzy metody. Create jest zawsze wywoływany na początku przy tworzeniu aplikacji. W tym wypadku tworzymu tu obiekt SpriteBatch czyli swoistą scenę oraz Texture. Następnie mamy metodę render. Jest to metoda gdzie wykonywane jest większość operacji. Metoda ta jest wywoływana cały czas dopóki w jakiś sposób jej nie przerwiemy. To tu rysujemy obiekty czy aktualizujemy większość danych w grze.
Gdx.gl.glClearColor(1, 0, 0, 1); pozwala nam ustawić kolor tła w tym wypadku jest to czerwony. Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); czyści dla nasz ekran. Aby umieścić Texture na ekranie musimy ją umieścić na Obiekcie SpriteBatch. Wszystkie operacje wykonywane na SpriteBatch wykonywane są między metodami Batch.begin()i batch.end(); batch.draw() pozwala nam wyrysować podaną texturę w wybranym miejscu w tym wypadku w górnym rogu ekranu.
Metodę Dispose stosujemy by nie doszło do wycieku pamięci pozbywamy się tu wszystkich nie potrzebnych obiektów w tym wypadku spritebatch i textura.
 
Odpalenie tego kodu wyświetla nam taki oto obrazek nie jest to może wiele ale na początek to już coś.
 
image

 
Aktualnie pracuje nad bardziej rozbudowanym top-down shooterem za pomocą tego frameworka dlatego mam nadzieje że w przyszłości uda mi się napisać więcej poradników dla tej platformy oraz uda mi się skończyć mój projekt. Poniżej mały preview możliwości libgdx:
 

time collapsetime collapsetime collapse
time collapsetime collapsetime collapse

 
 
Na stronie libgdx można znaleźć ponad kilka tysięcy gier stworzonych przy pomocy tej bibloteki https://libgdx.badlogicgames.com/gallery.html
 
Istnieje też wiele użytecznych narzędzi ułatwiające tworzenie naszych aplikacji. Kilka jakich polecam to:
 
2D particle generator https://github.com/libgdx/libgdx/wiki/2D-Particle-Editor Program pozwala nam generować ciekawe efekty przy użyciu cząstek.
Tiled http://www.mapeditor.org/download.html Program pomaga nam przy generowaniu wszelkich map i teł.
Physics body editor http://www.aurelienribon.com/blog/projects/physics-body-editor/ Program który w łatwy sposób pozwoli nam stworzyć granice dla obiektu
Texture Packer https://code.google.com/archive/p/libgdx-texturepacker-gui/ Przyjemny program do pakowania textur.
 

Ciekawe referencje:
https://github.com/libgdx/libgdx/wiki
https://www.youtube.com/channel/UC3ZN1N_OD5XZpKf9vlTHddg
https://www.youtube.com/user/ForeignGuyMike/playlists
http://www.gamefromscratch.com/page/LibGDX-Tutorial-series.aspx

2 przemyślenia nt. „LibGDX Wprowadzenie Tutorial

  1. Helo are using WordPress for yur site platform? I’m new to the blog world but I’m trying to get started and set up my own.Do yoou need any coding knowledge to make your own blog? Any help would be really appreciated!

    • It depends on what features you need on your blog and how much such blog should be unique. However, in most cases, you do not need programming knowledge to set up a professional blog on WordPress. All you need to do is familiarize yourself with several instructions on how to set up wordpress blog, which are plenty on the internet, and choose the right template. When you need some additional functions there is a lot of free plugins on the network. WordPress itself is relatively simple and intuitive to use.

Dodaj komentarz

WordPress Video Lightbox Plugin