GD Script: Empezando
Introducción
- GD Script es un lenguaje de programación orientado a objetos, imperativo y gradualmente tipado, similar a Python.
- Específicamente diseñado para Godot.
- Este tutorial cubre conceptos desde variables y condicionales hasta herencia y señales.
- El video está dividido en secciones claramente nombradas que pueden servir como manual de referencia.
Creación de un Escenario de Prueba
- Creación de un nodo y renombrarlo a “Main”.
- Guardar como escena y añadir un script.
- La función
ready()
se usa como punto de inicio del juego.
- Uso de
print()
para mostrar mensajes en la consola.
- Indentación y sensibilidad a mayúsculas son importantes.
Modificación de Nodos a Través del Script
- Añadir un nodo “Label” y modificar sus propiedades como
text
y modulate
.
- Arrastrar y soltar nodos en la función
ready()
para crear referencias.
- Cambiar colores usando
modulate
.
Manejo de Entradas
- Crear acciones de entrada en las configuraciones del proyecto.
- Función
input(event)
para manejar entradas.
- Uso de
event.is_action_pressed()
y event.is_action_released()
para detectar teclas presionadas y soltadas.
Variables y Operaciones
- Definición de variables con
var
e inicialización de valores.
- Operaciones aritméticas:
+=
, -=
, *=
, /=
, etc.
- Uso de estructuras de control
if
y else
para manejar la lógica del juego.
Comentarios en el Código
- Uso de
#
para agregar comentarios y explicar partes del código.
- También se pueden usar para deshabilitar temporalmente partes del código.
Variables Avanzadas
- Ámbito (scope) de las variables: global vs. local.
- Tipos de datos:
bool
, int
, float
, string
y casting entre tipos.
- Tipado estático opcional para mayor seguridad.
- Uso de
export
para exponer variables en el inspector.
- Constantes: Uso de
const
para definir valores inmutables.
Funciones
- Definición: Uso de
func
para definir funciones reutilizables.
- Parámetros y Retornos: Las funciones pueden recibir argumentos y devolver valores usando
return
.
- Tipado estático también es aplicable a parámetros y valores de retorno.
Números Aleatorios
- Funciones como
randf()
y rand_range()
para obtener números aleatorios.
- Uso para probabilidades y asigne diferentes valores aleatorios.
Arreglos y Bucles
- Arreglos: Creación y manejo de listas de elementos con índices.
- Bucles For y While: Repetición de código usando
for
y while
.
- Uso de
break
y continue
en bucles para control de flujo.
Diccionarios
- Concepto de pares clave-valor para almacenar datos relacionales.
- Acceso y modificación de valores usando claves.
- Anidamiento de diccionarios y arreglos dentro de diccionarios.
Enums y Match Statements
- Uso de enums para definir estados o etiquetas en el juego.
- Match Statements para ejecutar diferentes bloques de código basado en valores de enums.
Modificación Avanzada de Nodos
onready
para asegurar que un nodo exista antes de referenciarlo.
- Uso de
export
para referenciar nodos desde el inspector.
- Comprobación de tipos usando
is
palabra clave.
Señales
- Señales: Mensajes que los nodos pueden enviar y escuchar para eventos.
- Conexión y desconexión de señales desde la interfaz y a través del código.
- Pasar parámetros a través de señales.
Getters y Setters
- Getters y Setters: Control de cómo se accede y modifica una variable.
- Clamping valores y emisión de señales en setters.
Clases e Instancias
- Clases: Plantillas para crear objetos con propiedades y métodos comunes.
- Instancias: Versiones específicas de una clase con valores únicos.
- Uso de
extends
para heredar funcionalidades de otras clases.
Inner Classes y Composición
- Clases internas para agrupar variables y funciones relacionadas dentro de otra clase.
- Composición: Preferencia a veces sobre herencia para estructura de código.
Best Practices
- Call Down, Signal Up: Práctica recomendada para comunicación entre nodos.
- Estilo de Código: Seguir guías de estilo para mantener el código legible y mantenible.
Este es un resumen exhaustivo del tutorial de GD Script cubierto en el video. Asegúrate de revisar cada sección y practicar los ejemplos para una comprensión más profunda.