Archivos externos
Parte de la sección Programación orientada a objetos del Journey de GDScript de Coddy. Lección 1 de 65.
Los programas reales se dividen en varios archivos. Cada archivo .gd es un script, y un script puede usar otro.
Escribe class_name en la parte superior de un script para darle un nombre global. Cualquier otro script del proyecto puede usar ese nombre directamente, sin una línea de importación:
# greeter.gd
class_name Greeter
extends RefCounted
static func greet(player_name: String) -> String:
return "Hello, " + player_name + "!"static func define una función a la que llamas mediante el nombre del script, Greeter.greet("Ada"). extends RefCounted es la clase base sencilla para los scripts que no son nodos; las próximas lecciones lo explican.
# main.gd
extends Node
func _ready():
print(Greeter.greet("Ada")) # Hello, Ada!El programa sigue iniciándose en _ready() de main.gd. Los demás archivos solo definen cosas que usa main.gd.
Godot nombra los archivos en snake_case y el class_name en PascalCase: class_name Greeter está en greeter.gd. Mantén una clase por archivo.
Un script sin class_name se puede cargar mediante su ruta con preload():
const Helpers = preload("res://helpers.gd")
func _ready():
print(Helpers.shout("hi")) # ¡HOLA!Desafío
FácilEscribe la función estática greet en greeter.gd. Toma un nombre de jugador y devuelve Hello, NAME!. Cuando el nombre está vacío, devuelve Hello, friend!.
El código proporcionado lee cuántos nombres siguen y después imprime Greeter.greet() para cada uno. Para los nombres Ada y una línea vacía, imprime:
Hello, Ada!
Hello, friend!Tu código va en greeter.gd. main.gd contiene el código de entrada/salida proporcionado y no se puede editar.
Pruébalo tú mismo
extends Node
func _ready():
# Código de entrada/salida proporcionado: mantenlo tal como está
var count := int(OS.read_string_from_stdin())
for i in count:
print(Greeter.greet(OS.read_string_from_stdin()))
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación orientada a objetos
1Fundamentos de la programación orientada a objetos
Archivos externosIntroducción a la programación orientada a objetosClases vs. objetosLa palabra clave selfMétodosPropiedadesConstructor (_init)Repaso: calculadora sencilla4Polimorfismo
Repaso de la sobrescritura de métodosTipado patoClases y métodos abstractosDiseño de interfacesRepaso: calculadora de formas7Señales
¿Qué es una señal?Declarar y emitirConectarse a las señalesSeñales con argumentosRepaso: sistema de salud10Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite2Propiedades de clase
Variables de instancia y estáticasFunciones estáticasMétodos setter de propiedadesMétodos getter de propiedadesPrivado por convenciónRepaso: administrador de cuentas bancarias5Encapsulación
Miembros públicos y privadosValidación con settersOcultación de informaciónPropiedades de solo lecturaRepaso: sistema de registros de estudiantes8Conceptos avanzados de POO
Composición frente a herenciaClases internasNodos como componentesRefCounted frente a NodeEnums en clases3Herencia
Herencia básicaLa palabra clave superSobrescritura de métodosCadenas de herenciaComprobaciones de tipo con isRepaso: jerarquía de empleados6Métodos especiales
Introducción a los métodos virtualesEl método _to_stringIteradores personalizadosRepaso: lista personalizada9Patrones de diseño, parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón StrategyPractica por tu cuenta: Compilador de GDScript online