Seite anzeigenÄltere VersionenLinks hierherNach oben Eine ältere Version des Dokuments wurde geladen! Beim Speichern wird eine neue Version des Dokuments mit diesem Inhalt erstellt. Dateiauswahl====== GDScript — Kurzes Cheatsheet (Deutsch) ====== Dieses Cheatsheet fasst die wichtigsten Elemente von GDScript (Godot 3 & 4) kompakt zusammen. Codebeispiele sind kurz und direkt anwendbar. ===== Allgemeines ===== * Kommentar: # Einzeiliger Kommentar * Datei-Scope: * extends Node2D # Erbt von einem Node-Typ * class_name MyClass # Globaler Klassenname (registriert im Editor) ===== Variablen & Typen ===== ==== Dynamisch / untypisiert ==== <codedoc code:python>var x = 5 </codedoc> ==== Getypt (empfohlen) ==== <codedoc code:python>var speed: int = 200 const MAX_HP: int = 100 </codedoc> ==== onready (erst nach Knoten-Initialisierung): ==== <codedoc code:python>@onready var sprite = $Sprite </codedoc> ==== export (sichtbar/konfigurierbar im Editor) ==== <codedoc code:python>@export var speed := 200 @export (int, 0, 400) var health := 100 # Hinweis: Hint-Syntax kann je nach Version leicht variieren</codedoc> ===== Funktionen ===== ==== Definition ==== <codedoc code:python>func my_func(param: int) -> String: return str(param)</codedoc> ==== Lebenszyklus-Hooks ==== <codedoc code:python>func _ready(): # nach dem Hinzufügen in die Szene func _process(delta): # every frame (nicht-physikalisch) func _physics_process(delta): # physics frame</codedoc> ==== Sichtbarkeits-/Annotations ==== <codedoc code:python>@tool # Skript läuft auch im Editor (Godot 3/4) export, onready, class_name siehe oben</codedoc> ===== Knoten & Szenen ===== ==== Zugriff ==== <codedoc code:python>var player = get_node("Player") var p = $Player/SubNode</codedoc> ==== Instanziieren ==== <codedoc code:python>var Packed = preload("res://Enemy.tscn") var enemy = Packed.instantiate() # Godot 4 var enemy = Packed.instance() # Godot 3 (alte Methode) add_child(enemy) ==== Entfernen ==== <codedoc code:python>queue_free()</codedoc> ===== Ressourcen laden ===== ==== preload (compile-time, schneller) ==== <codedoc code:python>var TEX = preload("res://sprite.png")</codedoc> ==== load (runtime) ==== <codedoc code:python>var TEX = load("res://sprite.png")</codedoc> ===== Signale ===== ==== Definieren / Emittieren ==== <codedoc code:python>signal hit(damage) emit_signal("hit", 10)</codedoc> ==== Verbinden ==== <codedoc code:python>connect("hit", self, "_on_hit") $Button.connect("pressed", self, "_on_pressed")</codedoc> ==== Godot 4: Typed signal syntax möglich ==== <codedoc code:python>signal hit(damage: int)</codedoc> ===== Eingabe (Input) ===== ==== _input(event) ==== <codedoc code:python>func _input(event): if event is InputEventKey and event.pressed: if event.scancode == KEY_SPACE: jump()</codedoc> ==== Input-Mapping (Project Settings -> InputMap) ==== <codedoc code:python>if Input.is_action_pressed("ui_right"): ...</codedoc> ===== Await / Coroutines / Timer ===== ==== Godot 3 yield: ==== yield(get_tree().create_timer(1.0), "timeout") - Godot 4 await: - await get_tree().create_timer(1.0).timeout - Timer-Node: - $Timer.start(2.0) Collections - Array: - var a = [1, 2, 3] - a.append(4) - for i in a: ... - Dictionary: - var d = {"hp": 10, "name": "Player"} - if d.has("hp"): ... Kontrollstrukturen - if/elif/else: - if x > 0: pass - match (Godot 4 / GDScript 2.0): - match value: 1: ... _: ... - for/while: - for i in range(5): ... - 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): - position = Vector2(100, 200) - Bewegung: - velocity = velocity.move_toward(target, speed * delta) - Prüfen ob in Gruppe: - if is_in_group("enemies"): ... - Connect per Code: - 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()SpeichernVorschauAbbrechen Zusammenfassung Hinweis: Durch das Bearbeiten dieser Seite geben Sie Ihr Einverständnis, dass Ihr Inhalt unter der folgenden Lizenz veröffentlicht wird: CC Attribution-Share Alike 4.0 International gdscript/cheatsheet.1760466507.txt.gz Zuletzt geändert: 2025/10/14 20:28von silversurfer