gdscript:cheatsheet

Dies ist eine alte Version des Dokuments!


GDScript — Kurzes Cheatsheet (Deutsch)

Dieses Cheatsheet fasst die wichtigsten Elemente von GDScript (Godot 3 & 4) kompakt zusammen. Codebeispiele sind kurz und direkt anwendbar.

  • Kommentar: # Einzeiliger Kommentar
  • Datei-Scope:
    • extends Node2D # Erbt von einem Node-Typ
    • class_name MyClass # Globaler Klassenname (registriert im Editor)
var x = 5 
var speed: int = 200
const MAX_HP: int = 100 
@onready var sprite = $Sprite 
@export var speed := 200
@export (int, 0, 400) var health := 100   # Hinweis: Hint-Syntax kann je nach Version leicht variieren
func my_func(param: int) → String:
   return str(param)
func _ready():                 # nach dem Hinzufügen in die Szene
func _process(delta):          # every frame (nicht-physikalisch)
func _physics_process(delta):  # physics frame
@tool         # Skript läuft auch im Editor (Godot 3/4) export, onready, class_name siehe oben
var player = get_node(„Player“)
var p = $Player/SubNode
var Packed = preload(„res://Enemy.tscn)
var enemy = Packed.instantiate()   # Godot 4
var enemy = Packed.instance()      # Godot 3 (alte Methode)
add_child(enemy)
queue_free()
var TEX = preload(„res://sprite.png)
var TEX = load(„res://sprite.png)
signal hit(damage)
emit_signal(„hit“, 10)
connect(„hit“, self, „_on_hit“)
$Button.connect(„pressed“, self, „_on_pressed“)
signal hit(damage: int)
func _input(event):
   if event is InputEventKey and event.pressed:
      if event.scancode == KEY_SPACE:
         jump()
if Input.is_action_pressed(„ui_right“):
 …

yield(get_tree().create_timer(1.0), „timeout“) - Godot 4 await:

  1. await get_tree().create_timer(1.0).timeout

- Timer-Node:

  1. $Timer.start(2.0)

Collections - Array:

  1. var a = [1, 2, 3]
  2. a.append(4)
  3. for i in a: …

- Dictionary:

  1. var d = {„hp“: 10, „name“: „Player“}
  2. if d.has(„hp“): …

Kontrollstrukturen - if/elif/else:

  1. if x > 0:

pass - match (Godot 4 / GDScript 2.0):

  1. match value:

1:

      ...
    _:
      ...

- for/while:

  1. for i in range(5): …
  2. while cond: …

Fehlerbehandlung & Debug - print(), push_error(), push_warning() - assert(condition, „message“)

Best Practices (Kurz) - Typisieren wo möglich (besseres Autocomplete & Fehlercheck) - Export für Editor-Bearbeitbarkeit - onready für Knoten-Referenzen - Verwende preload für häufig genutzte Ressourcen - Trenne Gameplay-Logik in übersichtliche Methoden - Nutze Signals statt eng gekoppelter Node-Referenzen (lockere Kopplung)

Nützliche One-Liner - Position setzen (Node2D):

  1. position = Vector2(100, 200)

- Bewegung:

  1. velocity = velocity.move_toward(target, speed * delta)

- Prüfen ob in Gruppe:

  1. if is_in_group(„enemies“): …

- Connect per Code:

  1. some_node.connect(„signal“, self, „_method“)

Kurze Beispiele

Player (Grundgerüst) ```gdscript extends CharacterBody2D class_name Player

export var speed: float = 200.0 onready var sprite = $Sprite

func _physics_process(delta):

  var dir = Vector2.ZERO
  if Input.is_action_pressed("ui_right"): dir.x += 1
  if Input.is_action_pressed("ui_left"): dir.x -= 1
  velocity.x = dir.x * speed
  move_and_slide()
  • gdscript/cheatsheet.1760466550.txt.gz
  • Zuletzt geändert: 2025/10/14 20:29
  • von silversurfer