Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gdscript:cheatsheet [2025/10/14 20:33] – silversurfer | gdscript:cheatsheet [2025/10/14 20:51] (aktuell) – [Fehlerbehandlung & Debug] silversurfer | ||
|---|---|---|---|
| Zeile 99: | Zeile 99: | ||
| ===== Kontrollstrukturen ===== | ===== Kontrollstrukturen ===== | ||
| - | - if/ | + | ==== if/ |
| - | | + | <codedoc code: |
| - | pass | + | # die Zahl ist größer Null |
| - | - match (Godot 4 / GDScript 2.0): | + | pass |
| - | - match value: | + | elif x < 0: |
| - | 1: | + | # die Zahl ist kleiner Null |
| - | ... | + | pass |
| - | _: | + | else: |
| - | ... | + | # die Zahl ist Null |
| - | - for/while: | + | pass</codedoc> |
| - | - for i in range(5): ... | + | |
| - | - while cond: ... | + | |
| - | Fehlerbehandlung & Debug | + | ==== match (Godot 4 / GDScript 2.0): ==== |
| - | - print(), push_error(), | + | <codedoc code: |
| - | - assert(condition, " | + | 1: |
| + | ... | ||
| + | _: | ||
| + | ...</ | ||
| + | |||
| + | ==== for/while: ==== | ||
| + | <codedoc code: | ||
| + | ... | ||
| - | Best Practices (Kurz) | + | while cond: |
| - | - 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 | + | ===== Fehlerbehandlung & Debug ===== |
| - | - Position setzen | + | * print(), push_error(), push_warning() |
| - | - position = Vector2(100, 200) | + | * assert(condition, "message" |
| - | - Bewegung: | + | * |
| - | - velocity = velocity.move_toward(target, speed * delta) | + | |
| - | - Prüfen ob in Gruppe: | + | |
| - | - if is_in_group("enemies"): ... | + | |
| - | - Connect per Code: | + | |
| - | - some_node.connect(" | + | |
| - | Kurze Beispiele | + | ===== 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) | ||
| - | Player (Grundgerüst) | + | ==== Nützliche One-Liner==== |
| - | ```gdscript | + | === Position setzen (Node2D) === |
| - | extends CharacterBody2D | + | <codedoc code: |
| - | class_name Player | + | === Bewegung === |
| + | <codedoc code: | ||
| + | === Prüfen ob in Gruppe === | ||
| + | <codedoc code: | ||
| + | | ||
| + | === Connect per Code: === | ||
| + | <codedoc code: | ||
| + | |||
| + | ===== Kurze Beispiele ===== | ||
| + | ==== Player (Grundgerüst) | ||
| + | <codedoc code: | ||
| export var speed: float = 200.0 | export var speed: float = 200.0 | ||
| Zeile 149: | Zeile 160: | ||
| if Input.is_action_pressed(" | if Input.is_action_pressed(" | ||
| velocity.x = dir.x * speed | velocity.x = dir.x * speed | ||
| - | move_and_slide() | + | move_and_slide()</ |