2. Nodes, Scenes en Hierarchie
Leer de fundamenten van Godot: nodes, scenes en hierarchie
Godot nodes en scenes
Nodes
Nodes zijn de fundamentele bouwstenen van je spel. Ze zijn als de ingrediënten in een recept. Er bestaan tientallen soorten nodes die een afbeelding kunnen weergeven, een geluid kunnen afspelen, een camera kunnen vertegenwoordigen, en nog veel meer.
Alle nodes hebben de volgende eigenschappen:
Een naam.
Bewerkbare eigenschappen.
Ze ontvangen callbacks om elke frame te worden bijgewerkt.
Je kunt ze uitbreiden met nieuwe eigenschappen en functies.
Je kunt ze als kind aan een andere node toevoegen.
De laatste eigenschap is belangrijk. Samen vormen nodes een boomstructuur, wat een krachtige manier is om projecten te organiseren. Omdat verschillende nodes verschillende functies hebben, leidt het combineren ervan tot complexer gedrag. Zo kan je een speelbaar personage bouwen dat de camera volgt met behulp van een CharacterBody2D-node, een Sprite2D-node, een Camera2D-node en een CollisionShape2D-node.

Scenes
Wanneer je nodes organiseert in een boomstructuur, zoals bij een personage, noemen we dat een scène. Zodra een scène is opgeslagen, werkt deze in de editor als een nieuw soort node, die je kunt toevoegen als kind van een bestaande node. In dat geval verschijnt de instantie van de scène als één enkele node, waarvan de interne structuur verborgen blijft.
Hoewel een scene in de meeste Game Engines een ander woord is voor Level, kan dit dus in Godot eender welke Node-structuur zijn:
Een level
een personage in die level
een wapen dat het personage vastheeft
het projectiel dat het wapen afvuurt
Een Scene is dus niet meer dan een boomstructuur van nodes, opgeslagen in je project.
Scènes stellen je in staat om de code van je spel te structureren zoals jij dat wilt. Je kunt nodes combineren om aangepaste en complexe nodetypen te maken — bijvoorbeeld een spelpersonage dat kan rennen en springen, een levensbalk, een kist waarmee je kunt interageren, en nog veel meer.

De Godot-editor is in essentie een scène-editor. Hij bevat tal van hulpmiddelen om 2D- en 3D-scènes te bewerken, evenals gebruikersinterfaces. Een Godot-project kan zoveel scènes bevatten als je nodig hebt. De engine vereist slechts één scène als de hoofdscène van je applicatie. Dit is de scène die Godot als eerste laadt wanneer jij of een speler het spel start.
Naast het feit dat scènes zich gedragen als nodes, hebben ze de volgende eigenschappen:
Ze hebben altijd één root node, zoals de “Player” in ons voorbeeld.
Je kunt ze opslaan op je lokale schijf en later opnieuw laden.
Je kunt zoveel instanties van een scène maken als je wilt. Je zou bijvoorbeeld vijf of tien personages in je spel kunnen hebben, allemaal gemaakt op basis van je Character-scène.
Assets
Met Assets worden alle mogelijke dingen bedoeld die je kan gebruiken om een spel te maken. Veel Assets, zoals 3D Models, worden intern door Godot reeds verwerkt tot Scenes tijdens het importeren. Zo kan je dus 3D Models rechtstreeks slepen in een scene, en worden ze direct als Node getoond.
Open de 3d scene

Om te beginnen ga je een lege 3D Scene openen waar je een knikkerbaan zult ontwerpen met behulp van verschillende assets.
in het Filesystem venster, ga naar scenes > levels, en dubbelklik vervolgens op 2-marble-track.tscn om deze te openen.
Dit is een lege scene, die je stap voor stap zult opvullen!
Sleep de prototype scene in de 3d scene

Zoals je hierboven hebt geleerd, kan een Scene meer zijn dan alleen een level, en kan je scenes toevoegen als nodes aan andere scenes. In deze stap ga je een bestaande scene toevoegen aan de huidige scene.
Open in de Scenes-map de map objects, en sleep de scene prototype-floor.tscn in de Hierarchy-view op de Node3D, zodat de prototype-floor een child wordt van de Node3D.
Plaats de prototype scene op het nulpunt

Voor consistentie en aangenaam werken plaats je de knikkerbaan-omgeving precies op de oorsprong — of het midden — van de scène, met behulp van de Transform-eigenschap.
Elke 3D Node in je scène heeft een Transform-eigenschap, waarmee je de positie, rotatie en schaal van het object kunt beheren.
De oorsprong van een scène bevindt zich op positie 0, 0, 0 op de X-, Y- en Z-as.
Selecteer in de Scene Hierarchy het object Prototype-Floor.
Ga naar de inspector en zet de positie-waardes van de Transform eigenschap op X = 0, Y = 0, Z = 0
Denk eraan om regelmatig je werk op te slaan (CTRL+S)
Voeg de finishlijn toe

Een knikkerbaan ontwerpen zal vlotter gaan wanneer je hem opbouwt van finish naar start (in plaats van start naar finish).
Er zijn veel Assets om uit te kiezen om je finishlijn op te bouwen. Zo zijn er verschillende soorten vlaggen en eindstukken te vinden in de Assets van het project.
in het Filesystem venster, ga naar Assets > kenney > kenney_marble-kit.
Klik rechtsboven op het Grid-view of Thumbnail-view icoontje, zodat je alle Assets kan bekijken. Bekijk de Assets die je in die map vindt.
Degenen die beginnen met
end-zijn de stukken die dienen als eindpunt.Degenen die beginnen met banner- zijn vlaggen die je kan toevoegen aan je scene.
Je mag uiteraard eender welk stuk gebruiken. Wees creatief!
Sleep een Asset in je Scene. Gebruik de Move en Rotation Mode om ze op een goede plaats te zetten.
Je kan altijd acties ongedaan maken met CTRL+Z.
Voeg andere knikkerbaan stukken toe

Bouw je knikkerbaan nu zo groots mogelijk uit door meer en meer stukken te plaatsen. Gebruik je eigen creativiteit om zo gek mogelijk te bouwen, en probeer je technisch inzicht te gebruiken om de knikkerbaan te ondersteunen met support-Assets.
in het Filesystem venster, ga naar Assets > kenney > kenney_marble-kit.
Voeg minimaal 3 bochten, 3 vlakke stukken en 3 afdalingen toe.
Laatst bijgewerkt