Skip to main content

Cheatsheet

Een snelle referentie voor alles wat je nodig hebt in Godot en GDScript.


Coördinatensysteem

Hoe werkt het coördinatensysteem in Godot?
RichtingAsWaarde
RechtsXWordt groter (+)
LinksXWordt kleiner (-)
OmlaagYWordt groter (+)
OmhoogYWordt kleiner (-)

Let op: Het punt (0, 0) zit in de linkerbovenhoek van het scherm. Daarom is de jump velocity negatief!


Script structuur

Hoe ziet een GDScript bestand eruit?
extends CharacterBody2D

# 1. Constanten
const SPEED = 300.0
const JUMP_VELOCITY = -800.0

# 2. Variabelen
var op_de_grond
var staat_stil

# 3. Functies
func _physics_process(delta: float) -> void:
# Jouw code hier
move_and_slide()

Variabelen & constanten

Hoe maak ik variabelen en constanten aan?
var score            # Variabele zonder type
var richting := 0.0 # Type wordt automatisch bepaald (:=)
const SPEED = 300.0 # Constante (verandert nooit, HOOFDLETTERS)

Input

Hoe lees ik toetsenbord-input?
CodeWat doet het?
Input.is_action_just_pressed("ui_accept")true op het moment dat je de toets indrukt (eenmalig)
Input.is_action_pressed("ui_accept")true zolang je de toets ingedrukt houdt
Input.get_axis("ui_left", "ui_right")Geeft -1 (links), 0 (niks) of 1 (rechts)

Beweging

Volledig movement script
extends CharacterBody2D

const SPEED = 300.0
const JUMP_VELOCITY = -800.0

func _physics_process(delta: float) -> void:
# Zwaartekracht toepassen
if not is_on_floor():
velocity += get_gravity() * delta

# Springen (alleen als je op de grond staat)
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY

# Links/rechts bewegen
var direction := Input.get_axis("ui_left", "ui_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)

move_and_slide()

Velocity waarden

Welke velocity hoort bij welke situatie?
Situatievelocity
Stilstaan(0, 0)
Naar rechts(300, 0)
Naar links(-300, 0)
Vallen(0, positief getal)
Springen(0, negatief getal)

Handige functies

Welke functies gebruik ik het meest?
FunctieUitleg
move_and_slide()Past velocity toe en handelt botsingen af. Altijd aan het einde aanroepen!
is_on_floor()Geeft true als het karakter de grond raakt
get_gravity()Geeft de zwaartekracht-vector terug
move_toward(huidige, doel, stap)Beweegt een waarde richting het doel (handig voor afremmen)
print(waarde)Print een waarde naar de console (handig voor debuggen)

Animaties

Hoe speel ik animaties af?
# Animatie afspelen
$Sprite2D.play('Idle')
$Sprite2D.play('Run')
$Sprite2D.play('Jump')

# Sprite spiegelen (links/rechts kijken)
$Sprite2D.flip_h = false # Kijkt naar rechts
$Sprite2D.flip_h = true # Kijkt naar links
Hoe kies ik animaties op basis van beweging?
# Stilstaan
if velocity.x == 0:
$Sprite2D.play('Idle')

# In de lucht
if not is_on_floor():
$Sprite2D.play('Jump')

# Naar rechts bewegen
if velocity.x > 0:
$Sprite2D.play('Run')
$Sprite2D.flip_h = false

# Naar links bewegen
if velocity.x < 0:
$Sprite2D.play('Run')
$Sprite2D.flip_h = true

Nodes openen in code

Hoe gebruik ik het $-teken?
$Sprite2D              # Toegang tot een child-node ($ is een snelkoppeling)
$Sprite2D.play() # Een functie aanroepen op een child-node
$Sprite2D.flip_h # Een eigenschap van een child-node lezen/aanpassen

Vergelijkingen & logica

Welke vergelijkingen kan ik gebruiken?
if velocity.x == 0:        # Is gelijk aan
if velocity.x > 0: # Groter dan
if velocity.x < 0: # Kleiner dan
if not is_on_floor(): # NIET (draait true/false om)

if conditie:
# doe iets
else:
# doe iets anders

Resources (bestanden toevoegen)

Hoe voeg ik afbeeldingen toe aan mijn project (res://)?
  • Klik linksonder in Godot met de rechtermuisknop op res://
  • Kies daarna Opening in bestandsbeheer

res

Er opent zich een map in je Windows Verkenner. Als je afbeeldingen wilt toevoegen aan je project, kopieer ze dan naar deze map. Wanneer je teruggaat naar Godot, zul je zien dat Godot even moet nadenken en daarna zijn je afbeeldingen te gebruiken in je project.