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