Inhaltsverzeichnis

Variablen

Wahl des Namens

Variablen- und Funktionsnamen können unter Berücksichtigung der folgenden Regeln frei gewählt werden.

Zahlen

var a = 5
print (a+6)  # Ausgabe = 11 

int

Ab Godot 3.1 kann einer Variablen auch ein Daten-Typ zugeordnet werden
Ganzzahl also ohne Nachkommastellen

var a : int = 5

float

Ab Godot 3.1 kann einer Variablen auch ein Daten-Typ zugeordnet werden.
Fließkommazahl

var a : float = 5

Boolean

Ab Godot 3.1 kann einer Variablen auch ein Daten-Typ zugeordnet werden.
Wahrheitswert True und False (engl. für wahr und falsch)

var a : bool = true

String

var name = "Hugo"
print (name)  # Ausgabe = Hugo 

Ab Godot 3.1 kann einer Variablen auch ein Daten-Typ zugeordnet werden.

var geburtstag : String = "01.01.2019"

Methoden

bool begins_with ( String text )
PoolStringArray bigrams ( )
String c_escape ( )
String c_unescape ( )
String capitalize ( )
int casecmp_to ( String to )
String dedent ( )
bool empty ( )
bool ends_with ( String text )
void erase ( int position, int chars )
int find ( String what, int from=0 ) Sucht nach einer Zeichenkette und liefert die Position. Optional kann der Beginn der Suche angegebn werden
int find_last ( String what ) Sucht nach einer Zeichenkette und liefert die Position des letzten Fundes
int findn ( String what, int from=0 ) Findet das erste Vorkommen einer Teilzeichenfolge und ignoriert dabei die Groß- und Kleinschreibung. Gibt die Startposition des Teilstrings zurück oder -1, falls nicht gefunden. Optional kann der anfängliche Suchindex übergeben werden.
String format ( Variant values, String placeholder={_} )
String get_base_dir ( )
String get_basename ( )
String get_extension ( )
String get_file ( )
int hash ( )
int hex_to_int ( )
String insert ( int position, String what )
bool is_abs_path ( )
bool is_rel_path ( )
bool is_subsequence_of ( String text )
bool is_subsequence_ofi ( String text )
bool is_valid_float ( )
bool is_valid_hex_number ( bool with_prefix=False )
bool is_valid_html_color ( )
bool is_valid_identifier ( )
bool is_valid_integer ( )
bool is_valid_ip_address ( )
String json_escape ( )
String left ( int position )
int length ( ) Anzahl der Zeichen
String lstrip ( String chars )
bool match ( String expr )
bool matchn ( String expr )
PoolByteArray md5_buffer ( )
String md5_text ( )
int nocasecmp_to ( String to )
int ord_at ( int at )
String pad_decimals ( int digits )
String pad_zeros ( int digits )
String percent_decode ( )
String percent_encode ( )
String plus_file ( String file )
String replace ( String what, String forwhat )
String replacen ( String what, String forwhat )
int rfind ( String what, int from=-1 )
int rfindn ( String what, int from=-1 )
String right ( int position )
PoolStringArray rsplit ( String divisor, bool allow_empty=True, int maxsplit=0 )
String rstrip ( String chars )
PoolByteArray sha256_buffer ( )
String sha256_text ( )
float similarity ( String text )
PoolStringArray split ( String divisor, bool allow_empty=True, int maxsplit=0 ) zerlegt eine Zeichenkette bei „divisor“ und speichert alle Teile in ein Array
PoolRealArray split_floats ( String divisor, bool allow_empty=True )
String strip_edges ( bool left=True, bool right=True ) entfernt Frei- und Steuerzeichen zu Beginn und Ende des Strings
String substr ( int from, int len ) liefert einen Teilstring beginnend bei „from“ mit der Länge von „len“
PoolByteArray to_ascii ( )
float to_float ( )
int to_int ( )
String to_lower ( )
String to_upper ( )
PoolByteArray to_utf8 ( )
String trim_prefix ( String prefix )
String trim_suffix ( String suffix )
String xml_escape ( )
String xml_unescape ( )

Konstanten

Einen Speicherplatz mit festem Inhalt erreichen wir mit Konstanten.

const MeinGeburtsjahr = 66
const MeinName = "Hugo"

Array

var arr = []
arr = [1, 2, 3]
print(arr[1])          # Ausgabe = 2
print(arr.size() - 1]) # Ausgabe Anz. Arrayeinträge
arr[1] = 7             # arr = [1,7,3]
arr.append(4)          # arr = [1,7,3,4]
var v2 = Vector2(1, 2)
var v3 = Vector3(1, 2, 3)

Ab Godot 3.1 kann einer Variablen auch ein Daten-Typ zugeordnet werden.

var b : Array = [3, 55, 78]
void append ( var value )
var back ( )
int bsearch ( var value, bool before=True )
int bsearch_custom ( var value, Object obj, String func, bool before=True )
void clear ( )
int count ( var value )
Array duplicate ( )
bool empty ( )
void erase ( var value )
int find ( var what, int from=0 )
int find_last ( var value )
var front ( )
bool has ( var value )
int hash ( )
void insert ( int position, var value )
void invert ( )
var pop_back ( )
var pop_front ( )
void push_back ( var value )
void push_front ( var value )
void remove ( int position )
void resize ( int size )
int rfind ( var what, int from=-1 )
int size ( )
void sort ( )
void sort_custom ( Object obj, String func )

Initialisierung von Array-Feldern

Während ein eindimensionales Array, sich mit einer Skriptzeile erstellen lässt:

var feld = []

Müssen wir bei einem mehrdimensionalen Array-Feld, dieses mit Hilfe von For-Schleifen einrichten:

for y in range(10):
	feld.append([])  # neue Zeile
	for x in range(10):
		feld[y].append(null) # neue Spalte

Wodurch wir ein Feld[0-9][0-9] (Feld[y][x]) erhalten.

enum

Bei dieser Form von Konstanten handelt es sich um eine Aufzählung. Es gibt zwei Formen:

enum{links,rechts,unten,oben}
print(unten)

oder

enum richtung{links,rechts,unten,oben}
print(richtung.unten)

Über die Print-Anweisung erhalten wir die jeweilige IndexNummer.

In beiden Fällen erhalten wir die Indexnummer 2 da beginnend der erste Eintrag die Nummer 0 erhält.

Soll der Index bei einer anderen Zahl beginnen, können wir dies in der Zuweisung angeben:

enum{links=10,rechts,unten,oben}
print(unten)

würde so den Index 12 liefern.

Dictionary

var dict = {"name": "Hugo", "alter":23}
print(dict.get("name"), dict.get("alter"))
# => Hugo23
 
# erweitern eines Dictionary
dict.telefon = 4711
 
# ODER
var a = "Geschlecht"
var b = "männlich"
dict[a] = b

Ab Godot 3.1 kann einer Variablen auch ein Daten-Typ zugeordnet werden.

var myDict : Dictionary = {"name": "Max", "nachname": "Muster"}

Methoden

void clear ( ) löscht gesamten Inhalt des Dictionary
Dictionary duplicate ( bool deep=False )
bool empty ( ) bei leerem Dictionary gibt diese Funktion true zurück
bool erase ( Variant key ) löscht Schlüssel und Wert aus Dictionary
Variant get ( Variant key, Variant default=Null )
bool has ( Variant key ) liefert true wenn Schlüssel im Dictionary enthalten
bool has_all ( Array keys ) liefert true wenn alle Schlüssel(des Arry) im Dictionary enthalten
int hash ( ) wird auch nur ein Eintrag geändert, ändert sich dieser Wert
Array keys ( ) array mit allen Schlüsseln des Dictionary
int size ( ) Anzahl der Paare
Array values ( ) array mit allen Werten des Dictionary

Exportvariablen

export var Nachname = "Schröder"

Wenn jetzt der Node im Szenenbaum selektiert wird, ist die Variable und dessen Wert im Inspektor unter Script Variables aufgeführt. Der Wert kann im Inspektor geändert werden und hat dann auch Vorrang in Bezug auf die Skriptdefinition.

setget

Möchte man den externen Zugriff auf eine Variable überwachen, also einen schreib(set)- und/oder lese(get)-zugriff, kann man bei dessen Variablenzuweisung eine jeweilige Funktion zuordnen. Sinnvoll ist dies beispielsweise, um die Eingabe zu überprüfen.

var dummi = 10 setget set_funktion, get_funktion

Wird nun von außerhalb der Klasse, auf diese Variable schreibend zugegriffen, wird die Funktion set_funktion zuvor ausgeführt und bein lesenden Zugriff die Funktion get_funktion. Bei letzterem erfolgt die Übergabe durch eben diese Funktion mittels des return Befehls.

func get_funktion():
	return dummi

Es ist nicht zwingend notwendig beide Funktionen zu definieren.

var dummi = 10 setget set_funktion		# nur lesen
var dummi = 10 setget ,get_funktion		# nur schreiben (achte auf das Komma)

Typ ermitteln

int typeof( Variant what )
if typeof(Variable) == 4:
	# Variable vom Typ String
	pass
TYPE_NIL 0 TYPE nil (only applied for null).
TYPE_BOOL 1 TYPE bool.
TYPE_INT 2 TYPE integer.
TYPE_REAL 3 TYPE float/real.
TYPE_STRING 4 TYPE String.
TYPE_VECTOR2 5 TYPE Vector2.
TYPE_RECT2 6 TYPE Rect2.
TYPE_VECTOR3 7 TYPE Vector3.
TYPE_MATRIX32 8 TYPE Matrix32.
TYPE_PLANE 9 TYPE Plane.
TYPE_QUAT 10 TYPE Quat.
TYPE_AABB 11 TYPE AABB.
TYPE_MATRIX3 12 TYPE Matrix3.
TYPE_TRANSFORM 13 TYPE Transform.
TYPE_COLOR 14 TYPE Color.
TYPE_IMAGE 15 TYPE Image.
TYPE_NODE_PATH 16 TYPE NodePath.
TYPE_RID 17 TYPE RID.
TYPE_OBJECT 18 TYPE Object.
TYPE_INPUT_EVENT 19 TYPE InputEvent.
TYPE_DICTIONARY 20 TYPE Dictionary.
TYPE_ARRAY 21 TYPE Array.
TYPE_RAW_ARRAY 22
TYPE_INT_ARRAY 23
TYPE_REAL_ARRAY 24
TYPE_STRING_ARRAY 25
TYPE_VECTOR2_ARRAY 26
TYPE_VECTOR3_ARRAY 27
TYPE_COLOR_ARRAY 28
TYPE_MAX 29

windy – 28.07.2019