gdscript:cheatsheet

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gdscript:cheatsheet [2025/10/14 20:28] – [Knoten & Szenen] silversurfergdscript:cheatsheet [2025/10/14 20:51] (aktuell) – [Fehlerbehandlung & Debug] silversurfer
Zeile 46: Zeile 46:
 var enemy = Packed.instantiate()   # Godot 4 var enemy = Packed.instantiate()   # Godot 4
 var enemy = Packed.instance()      # Godot 3 (alte Methode) var enemy = Packed.instance()      # Godot 3 (alte Methode)
-add_child(enemy)+add_child(enemy)</codedoc>
 ==== Entfernen ==== ==== Entfernen ====
 <codedoc code:python>queue_free()</codedoc> <codedoc code:python>queue_free()</codedoc>
Zeile 79: Zeile 79:
 ===== Await / Coroutines / Timer ===== ===== Await / Coroutines / Timer =====
  
-==== Godot 3 yield==== +==== Godot 3 yield ==== 
-yield(get_tree().create_timer(1.0), "timeout"+<codedoc code:python>yield(get_tree().create_timer(1.0), "timeout")</codedoc> 
-Godot 4 await: +==== Godot 4 await ==== 
-  await get_tree().create_timer(1.0).timeout +<codedoc code:python>await get_tree().create_timer(1.0).timeout</codedoc> 
-Timer-Node: +==== Timer-Node ==== 
-  $Timer.start(2.0)+<codedoc code:python>$Timer.start(2.0)</codedoc>
  
-Collections +===== Collections ===== 
-Array: +==== Array ==== 
-  var a = [1, 2, 3] +<codedoc code:python>var a = [1, 2, 3] 
-  a.append(4) +a.append(4) 
-  for i in a: ... +for i in a:  
-Dictionary: +   ...</codedoc> 
-  var d = {"hp": 10, "name": "Player"+==== Dictionary: ==== 
-  if d.has("hp"): ...+<codedoc code:python>var d = {"hp": 10, "name": "Player"
 +if d.has("hp"):  
 +   ... </codedoc>
  
-Kontrollstrukturen +===== 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 +==== if/elif/else ==== 
-- print(), push_error(), push_warning() +<codedoc code:python>if x > 0: 
-- assert(condition, "message")+   # die Zahl ist größer Null 
 +   pass 
 +elif x < 0: 
 +   # die Zahl ist kleiner Null 
 +   pass 
 +else: 
 +   # die Zahl ist Null 
 +   pass</codedoc>
  
-Best Practices (Kurz+==== match (Godot 4 / GDScript 2.0): ==== 
-- Typisieren wo möglich (besseres Autocomplete & Fehlercheck) +<codedoc code:python>match value: 
-- Export für Editor-Bearbeitbarkeit +   1: 
-- onready für Knoten-Referenzen +      ... 
-- Verwende preload für häufig genutzte Ressourcen +   _: 
-- Trenne Gameplay-Logik in übersichtliche Methoden +      ...</codedoc> 
-- Nutze Signals statt eng gekoppelter Node-Referenzen (lockere Kopplung)+       
 +==== for/while: ==== 
 +<codedoc code:python>for i in range(5):  
 +   ...
  
-Nützliche One-Liner +while cond:  
-- Position setzen (Node2D)+   ...</codedoc>
-  - 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+===== Fehlerbehandlung & Debug ===== 
 +   * print(), push_error(), push_warning() 
 +   * assert(condition, "message") [[https://docs.godotengine.org/de/4.5/tutorials/scripting/gdscript/gdscript_basics.html#assert-keyword|Online-Doku]] 
 +   
  
-Player (Grundgerüst) +===== Best Practices (Kurz) ===== 
-```gdscript +  * Typisieren wo möglich (besseres Autocomplete & Fehlercheck) 
-extends CharacterBody2D +  * Export für Editor-Bearbeitbarkeit 
-class_name Player+  * 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) === 
 +<codedoc code:python> position = Vector2(100, 200)</codedoc> 
 +=== Bewegung === 
 +<codedoc code:python>velocity = velocity.move_toward(target, speed * delta)</codedoc> 
 +=== Prüfen ob in Gruppe === 
 +<codedoc code:python>if is_in_group("enemies"):  
 +   ...</codedoc> 
 +=== Connect per Code: === 
 +<codedoc code:python>some_node.connect("signal", self, "_method")</codedoc> 
 + 
 +===== Kurze Beispiele ===== 
 +==== Player (Grundgerüst) ==== 
 +<codedoc code:python>extends CharacterBody2D class_name Player
  
 export var speed: float = 200.0 export var speed: float = 200.0
Zeile 146: Zeile 160:
     if Input.is_action_pressed("ui_left"): dir.x -= 1     if Input.is_action_pressed("ui_left"): dir.x -= 1
     velocity.x = dir.x * speed     velocity.x = dir.x * speed
-    move_and_slide()+    move_and_slide()</codedoc>
  • gdscript/cheatsheet.1760466507.txt.gz
  • Zuletzt geändert: 2025/10/14 20:28
  • von silversurfer