Sceny i węzły

Wprowadzenie

../../_images/chef.png

Wyobraź sobie przez chwilę, że nie jesteś już twórcą gier. Zamiast tego jesteś szefem kuchni! Zmień swój strój na strój kucharza. Teraz zamiast tworzyć gry, tworzysz nowe i pyszne przepisy dla swoich gości.

W jaki sposób szef kuchni tworzy przepis? Przepisy dzielą się na dwie sekcje: pierwsza to składniki, a druga to instrukcje ich przygotowania. W ten sposób każdy może podążać za przepisem i delektować się swoim wspaniałym daniem.

Tworzenie gier w Godocie odczuwa się podobnie. Używanie silnika sprawia wrażenie, jakbyś znajdował się w kuchni. W kuchni tej węzły są jak lodówka pełna świeżych składników do gotowania.

Istnieje wiele typów węzłów. Niektóre pokazują obrazy, inne odtwarzają dźwięk, inne węzły wyświetlają modele 3D itp. Jest ich dziesiątki.

Węzły

Zacznijmy jednak od podstaw. Węzły są fundamentalnym elementem tworzenia gry. Jak wspomniano powyżej, węzeł może wykonywać różne wyspecjalizowane funkcje. Jednak dany węzeł zawsze posiada następujące atrybuty:

  • Ma nazwę.
  • Posiada właściwości które można edytować.
  • Może wywoływać zwrot co każdą klatkę.
  • Może być rozbudowywany (aby mieć więcej funkcji).
  • Może być dodany do innego węzła jako dziecko.
../../_images/tree.png

Węzły mogą mieć inne węzły jako dzieci. Węzły ułożone w ten sposób stają się drzewem.

W Godocie umiejętność takiego układania węzłów, to potężna umiejętność pomagająca w organizowaniu projektów. Ponieważ różne węzły mają różne funkcje, ich łączenie pozwala na tworzenie bardziej złożonych funkcji.

Nie martw się, jeśli jeszcze nie rozumiesz tego. Będziemy wyjaśniać tę sprawę w kolejnych sekcjach. Najważniejszym faktem, o którym należy pamiętać na razie, jest to, że węzły istnieją i mogą być rozmieszczone w ten sposób.

Sceny

../../_images/scene_tree_example.png

Teraz, gdy zdefiniowano pojęcie węzłów, kolejnym logicznym krokiem jest wyjaśnienie, czym jest scena.

Scena składa się z grupy węzłów zorganizowanych hierarchicznie (w sposób drzewiasty). Co więcej, scena:

  • zawsze ma jeden węzeł główny.
  • można zostać zapisane na dysku i wczytane z powrotem.
  • może być instancjonowany (więcej na ten temat później).

Uruchomienie gry oznacza uruchomienie sceny. Projekt może zawierać kilka scen, ale aby gra mogła się rozpocząć, jedna z nich musi być wybrana jako scena główna.

Zasadniczo, Godot jest edytorem scen. Posiada wiele narzędzi do edycji scen 2D i 3D oraz interfejsu, ale edytor opiera się na koncepcji edycji sceny i węzłów, które ją tworzą.

Edytor

Open the project you made in Wprowadzenie do Godot Engine, or create a new one. This will open the Godot editor:

../../_images/empty_editor.png

Jak wspomniano wcześniej, tworzenie gier w Godocie przypomina gotowanie, tak więc otwórz lodówkę i dodaj trochę świeżych węzłów do projektu. Na początek wyświetlimy na ekranie komunikat „Hello World!” (Witaj Świecie!).

To do this we need to add a Label node. Press the „Add Child Node” button at the top left of the scene dock (the icon represents a plus symbol). This button is the main way to add new nodes to a scene, and will always add the chosen node as a child of the currently selected node (or, in an empty scene, as the „root” node).

Informacja

In an empty scene (without root node), the scene dock shows several options to quickly add a root node to the scene. „2D Scene” adds a Node2D node, „3D Scene” adds a Spatial node, „User Interface” adds a Control node, and „Custom Node” which lets you select any node (so it is equivalent to pressing the „Add Child Node” button). You can also press the star-shaped icon to toggle the display of your favorited nodes.

Note that these presets are here for convenience and are not mandatory for the different types of scenes. Not every 3D scene needs a Spatial node as its root node, likewise not every GUI or 2D scene needs a Control node or Node2D as their root node.

Now, to add a label node to this scene you can click on the Custom Node button or the Add Node button at the top. In scenes that aren’t empty you use the add node button to create every child node.

../../_images/newnode_button.png

Spowoduje to otwarcie okna dialogowego Utwórz węzeł, pokazującego długą listę węzłów, które można utworzyć:

../../_images/node_classes.png

Z tego poziomu, wybierz węzeł „Etykieta”. Najszybciej będzie użyć wyszukiwarki:

../../_images/node_search_label.png

I na koniec, stwórz Label! Wiele dzieje się po naciśnięciu przycisku Utwórz:

../../_images/editor_with_label.png

Najpierw widok zmieni się na tryb 2D (ponieważ Label jest typem węzła 2D), a Label pojawi się, wybrany, w lewym górnym rogu widoku.

Węzeł zostanie wyświetlony w edytorze drzewa sceny (pole w prawym górnym rogu), a właściwości Label w inspektorze (pole w prawym dolnym rogu).

Następnym krokiem będzie zmiana właściwości „Tekst” etykiety. Zmieńmy to na „Witaj Świecie”:

../../_images/hw.png

W porządku, wszystko jest gotowe do otworzenia sceny! Naciśnij przycisk ODTWÓRZ SCENĘ na górnym pasku (lub naciśnij klawisz F6):

../../_images/playscene.png

No i… Wpadka.

../../_images/neversaved.png

Żeby uruchomić scenę, musisz ją najpierw zapisać (Scena -> Zapisz). Możesz użyć dowolnej nazwy, np. Witaj.tscn.

../../_images/save_scene.png

And here’s when something funny happens. The file dialog is a special file dialog, and only allows you to save inside the project. The project root is res:// which means „resource path”. This means that files can only be saved inside the project. For the future, when doing file operations in Godot, remember that res:// is the resource path, and no matter the platform or install location, it is the way to locate where resource files are from inside the game.

Po zapisaniu sceny i naciśnięciu „Uruchom Scenę” ponownie, demo „Witaj Świecie!” powinno działać:

../../_images/helloworld.png

Sukces!

Informacja

If this doesn’t immediately work and you have a hiDPI display on at least one of your monitors, go to Project → Project Settings → Display → Window then enable Allow Hidpi under Dpi.

Konfigurowanie projektu

Ok, to jest czas w którym można skonfigurować projekt. Teraz jedynym sposobem, aby uruchomić cokolwiek to uruchomienie bieżącej sceny. Projekty, jednak może mieć kilka scen, więc jeden z nich musi być ustawiona jako główna scena. Jest to scena, który zostanie załadowana, za każdym razem, gdy projekt jest uruchamiany.

Wszystkie te ustawienia są przechowywane w pliku project.godot, który jest plikiem tekstowym w formacie win.ini (dla łatwiejszej edycji). Istnieje kilkadziesiąt ustawień, które można zmienić w tym pliku, aby zmienić w projekcie. Aby uprościć ten proces, program Godot udostępnia okno dialogowe ustawień projektu.

Aby uruchomić okno dialogowe, wybierz Projekt -> Ustawienia projektu. Wypróbuj to.

Po otwarciu okna wybierz scenę główną. Znajdź opcję Aplikacja/Uruchom/Scena Główna i kliknij na nią, aby wybrać «Hello.tscn».

../../_images/main_scene.png

Teraz, po tej zmianie, po naciśnięciu zwykłego przycisku Play (lub F5), ta scena zostanie uruchomiona, bez względu na to, która scena jest aktywnie edytowana.

Okno dialogowe ustawień projektu zawiera wiele opcji, które można zapisać do pliku project.godot i pokazuje ich wartości domyślne. Jeśli zmienisz wartość, po lewej stronie nazwy zostanie zaznaczony haczyk. Oznacza to, że właściwość zostanie zapisana do pliku project.godot i zapamiętana.

Można również dodać własne opcje konfiguracyjne i wczytać je w czasie pracy za pomocą ProjectSettings.

Ciąg dalszy nastąpi…

Ten samouczek mówił o „scenach i węzłach”, ale jak dotąd była tylko jedna scena i jeden węzeł! Nie martw się, następny samouczek będzie poświęcony temu zagadnieniu….