GamedevArgentina.com - Hoja de trucos rápida de sintaxis GDScript
Comentarios
# esto es un comentario y es ignorado por Godot # esto tambien
Variables
var vidas # declara la variable vidas sin tipo (tipado dinámico) var vidas : int # declara la variable vidas como int (tipado estático) var puntos = 0.0 # declara la variable puntos como float (tipado dinámico) var puntos := 0.0 # declara la variable puntos como float (tipado estático) var puntos : float = 0.0 # declara la variable puntos como float (tipado estático) const VELOCIDAD = 100 # constante VELOCIDAD no puede cambiar el valor
Tipos de datos
int # números enteros 10 float # números con decimales 5.6 bool # booleano true (verdadero) o false (false) String # cadena de caracteres "gamedevargentina.com" Vector2 # 2 valores, normalmente coordenadas 2D (x, y) Vector2(5.0, 140.0) Vector3 # 3 valores, normalmente coordenadas 3D (x, y, z) Vector2(5.0, 10.0, 3.5) Array # listaDictionary # diccionario "clave" : "valor"
Listas (Arrays) y Diccionarios
var lista: Array = [1, 2, "Hola", true] # lista. puede tener valores de distinto tipo var enemigos: Dictionary = {"ogro": "Igor", "heroe": "Cronos"} # pares clave : valor
Operadores aritméticos
suma: 5 + 3 resta: 5 - 3 multiplicación: 3 * 3 división: 9 / 3 resto: 5 % 2 potencia: 3 ** 3
Operadores de comparación
igual: 5 == 3 # false no igual: != 3 # true menor que: 3 < 5 # true menor o igual: 3 <= 5 # true mayor que: 3 > 5 # false mayor o igual: 3 >= 5 # false
Operadores lógicos
a and b # y lógico a or b # o lógico not a # invierte el valor
Asignación
nombre = "Ale"# variable = valor puntos += 1 # puntos = puntos + 1 vidas -= 1# vidas = vidas - 1 puntos *= 2 # puntos = puntos * 2 vidas /= 2 # vidas = vidas / 2
Conversión de tipos (cast)
str(5) # convierte número a String int("5") # convierte String a entero float(5) # convierte número entero a número decimal
Condicionales (if, elif, else)
if numero == 5: print("cinco") elif numero == 6: print("seis") else: print("el numero no es ni cinco ni seis") match nombre: "Ale": print("Hola Alejandro") "Mari": print("Hola María!") _: print("No se quien sos")
Funciones
print("Hola") # función print muestra por consola func saluda(): # función sin parámetros print("Hola") func saluda(nombre): # función con parámetro print("Hola", nombre) saluda("Ale") # llama a la función func suma(a, b): # función con 2 parámetros return a + b print(suma(5, 6)) # muestra 11 var numero_aleatorio = randi_range(1, 5) print(len("Ale")) # devuelve 3 print("Ale".to_upper()) # ALE get_parent() # accede al nodo padre get_node("nodo") # accede al nodo hijo
Funciones internas
func _ready(): # se ejecuta una vez al iniciar pass func _process(delta): # se ejecuta en cada cuadro func _physics_process(delta): # 60 veces por segundo (física) func _input(event): # cuando hay evento de entrada
Bucles
for contador in range(5): print(contador) # 0, 1, 2, 3, 4 for item in lista: print(item) # cada item del array var contador = 0 while contador < 5: print(contador) # 0, 1, 2, 3, 4 contador += 1
Señales
signal destruido # crea una señal destruido.emit() # emite la señal destruido.connect(al_destruir) # conecta la señal
Teclas pulsadas
if Input.is_action_pressed("ui_left"): position.x -= 1 # mover a la izquierda if Input.is_action_just_pressed("ui_accept"): position.y -= 100 # mover hacia arriba if Input.is_action_just_released("ui_down"): # tecla dejó de ser pulsada