Troman - tworzenie gier
Logo serwisu Troman.pl
Panel Logowania

Godot podstawy

napisał : tyser
01
maja
2018
Podstawowe czynności które trzeba umieć wykonać w godocie
tagi : godot game engine, godot podstawy, godot nody, nody, node,godot poradnik

Nody to podstawowe elementy z których budujemy grę w godot. Elementy te mogą wykonywać wyspecjalizowane funkcje. Jedna każdy Node posiada zawsze następujące atrybuty : 

  • nazwa
  • edytowalne właściwości
  • odbiera wywołania zwrotne w celu przetworzenia każdej klatki
  • można rozszerzyć go o dodatkowe funkcje
  • można go dodać do innych węzłów jako dziecko

To ostatnie jest bardzo ważne. Node'y mogą mieć inne node'y jako dzieci. Po ułożeniu, w ten sposób node'y stają się drzewem. W Godot umiejętność układania Node'ów w ten sposób tworzy potęne narzędzie do organizowania projektów. Ponieważ różne węzły mają różne funkcje, łączenie ich pozwala na tworzenie bardziej złożonych funkcji. 

 

Z Node'ów tworzy się sceny, określają typ obiektu np.dźwięk,obrazek,animacja. Do obiektu danego typu można przypisać element jego typu np. do noda typu Sprite możemy dodać dowolny obrazek. Tutaj należy wspomnieć że jest to dość wygodny system bo jeśli chcemy zmienić wygląd czegoś w grze nie musimy usuwać poprzedniej wersji i robić obiektu od nowa wystarczy zmienić model/obrazek i dopasować tylko skalę pozycję i obrót natomiast wszystkie właściwości poprzedniego elementu zostają nietknięte

Zacznę od wstawiania nodów żeby to zrobić trzeba kliknąć na "+" w edytorze nodów:

Po czym wybrać z listy lub wpisać nazwę noda w wyszukiwarkę:

Po tym nody pojawiają się w edytorze nodów:

Tutaj dodałem pustego noda(biały pierwszy od góry) będziemy go wykorzystywać jako scenę główną czyli do niego będziemy dodawać wszystkie inne nody. Żeby to zrobić trzeba kliknąć node do którego chcemy dodać inny node i naciskamy "+",a teraz dodajemy po kolei: rigid body2d:

Mamy już obiekt fizyczny ale bez kolizji, żeby ją dodać trzeba dodać kolejnego noda(trzeba go dodać do rigidbody) "collisionshape2d" powinno to wyglądać mniej więcej tak:

Ostatni krok to kliknięcie shape i wybranie któregoś kształtu kolizji w tym przypadku rectangle(kwadrat/prostokąt) i gotowe mamy obiekt z kolizją. Teraz czas na wyjaśnienia czemu tak a nie inaczej:

  1. pusty nod został dodany na początku, ponieważ zawsze musi być jeden node główny do którego są podpięte wszystkie inne
  2. dziedziczenie nodów sprawia, że rigid body musi być na początku, bo inaczej grawitacja nie będzie działać, działa to mniej więcej tak: mamy kartkę papieru i kilka kropek na niej jeśli ją obrócimy punkty będą w tym samym miejscu na kartce ale w innym miejscu w stosunku np. do biurka na którym leży kartka przemieszczenie kartki zadziała tak samo jedyną różnicą jest skalowanie, które działa jak skalowanie zdjęcia zmniejszają się jednocześnie wszystkie obiekty i odległości między nimi, ale jeśli ruszyć jednym nodem podrzędnym nie zmieni on całości, oprócz tego nody można podczepiać w nieskończoność tutaj najlepiej zapamiętać zasadę "każdy node jest sceną na której można coś postawić" najlepiej oddaje to zasadę działania tak więc jeśli node fizyki dodamy jako node podrzędny to nie będzie miał wpływu na node nadrzędny, czyli będzie na niego(a właściwie obok niego) działać kolizja, ale grawitacja już nie, więc obiekt fizyki będzie spadał sam nie ciągnąc za sobą obiektu nadrzędnego,
  3. fizyka jest niestety bardziej skomplikowana niż w Blenderze ale dzięki temu nie trzeba kombinować jeśli potrzebujemy kilku obiektów kolizji w jednym obiekcie(obiekty fizyczne mogą mieć tyle kształtów kolizji ile tylko zechcemy)
  4. nie będę opisywać wszystkich nodów bo jest ich na to za dużo, ale w oknie wyboru nodów po kliknięciu noda mamy jego opis oprócz tego jest zakładka help z wykazem klas danych obiektów ,a w każdym tutorialu będę opisywał działanie nodów w nim wykorzystywanych

Teraz kiedy mamy te kwestie omówione przechodzimy dalej dodajemy sprite2d do rigid body i ładujemy do niego jakiś obrazek:

Z podglądu zasobów projektu wybieramy lokalizację naszego zdjęcia(polecam tak jak ja zrobiłem dodac ręcznie do folderu projektu osobny folder z zasobami z jakich będziemy korzystać):

teraz omówię poruszanie się w edytorze służą do tego trzy pierwsze od lewej ikonki w lewym górnym rogu okna podglądu:

kursor - poruszanie obiektem zaznaczanie i skalowanie 

krzyżyk ze strzałek - przemieszczanie obiektów

zawinięta strzałka - obracanie obiektu

Teraz ostatni element tego tutoriala: sceny, jest to bardzo proste można w ten sposób podzielić projekt na wiele mniejszych części np. możemy oddzielić rigidbody razem z zawartością od reszty jako oddzielną scenę, żeby to zrobić wystarczy kliknąć prawym na node który chcemy od dzielić i wybrać z opcji "save branch as scene":

Potem wybieramy folder docelowy i zapisujemy:

Widok w drzewku się zmieni:

Nie mamy już podglądu na zawartość ale jeśli klikniemy nasza scenę w drzewku otworzy się w nowym oknie:

Jeśli zechcemy naszą scenę wsadzić w inne miejsce wystarczy ją przeciągnąć do drzewka z podglądu folderów

To na tyle w tym tutorialu następny będzie o visual scripcie w razie pytań piszcie w komentarzach

7 komentarzy
Felioz napisał :
godz. 22:50, 5 maja 2018
Fajnie że wrzucane są nowe rzeczy. Można wiedzieć dokładniej o czym będzie następny artykulik? Chodzi mi po głowie pewien pomysł.
tyser napisał :
godz. 23:10, 5 maja 2018
następny będzie o VisualScripcie, powinienem niedługo skończyć
maniek napisał :
godz. 00:25, 6 maja 2018
Ale powiedz jaki pomysł, to się może coś dokleci ;)
tyser napisał :
godz. 17:22, 6 maja 2018
tutorial na przykładzie poruszania obiektem we wszystkie strony za pomocą strzałek
maniek napisał :
godz. 17:25, 6 maja 2018
Ale piszesz taki tutorial, czy chcesz żeby był napisany??
tyser napisał :
godz. 21:47, 6 maja 2018
piszę
Felioz napisał :
godz. 13:27, 6 maja 2018
Jak zrobić splash screen`a, na podstawie tego: https://www.youtube.com/watch?v=9sHKaQBcgO8. Polskich tutoriali brak, podanego nie jestem w stanie obejrzeć do końca (głos). Wydaje mi się że to dobra konkretna rzecz na początek.
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj