Arquivos externos
Parte da seção Programação orientada a objetos do Journey de GDScript da Coddy. Lição 1 de 65.
Programas reais são divididos em vários arquivos. Cada arquivo .gd é um script, e um script pode usar outro.
Escreva class_name no início de um script para dar a ele um nome global. Todos os outros scripts do projeto podem então usar esse nome diretamente, sem uma linha de importação:
# greeter.gd
class_name Greeter
extends RefCounted
static func greet(player_name: String) -> String:
return "Hello, " + player_name + "!"static func cria uma função que você chama pelo nome do script, Greeter.greet("Ada"). extends RefCounted é a classe base simples para scripts que não são nós; as próximas lições explicam isso.
# main.gd
extends Node
func _ready():
print(Greeter.greet("Ada")) # Hello, Ada!O programa ainda começa em _ready() de main.gd. Os outros arquivos apenas definem coisas que main.gd usa.
O Godot nomeia arquivos em snake_case e o class_name em PascalCase: class_name Greeter fica em greeter.gd. Mantenha uma classe por arquivo.
Um script sem class_name pode ser carregado pelo caminho com preload():
const Helpers = preload("res://helpers.gd")
func _ready():
print(Helpers.shout("hi")) # HI!Desafio
FácilEscreva a função estática greet em greeter.gd. Ela recebe o nome de um jogador e retorna Hello, NAME!. Quando o nome está vazio, ela retorna Hello, friend!.
O código fornecido lê quantos nomes vêm a seguir e, então, imprime Greeter.greet() para cada um. Para os nomes Ada e uma linha vazia, ele imprime:
Hello, Ada!
Hello, friend!Seu código deve ficar em greeter.gd. main.gd contém o código de entrada/saída fornecido e não pode ser editado.
Experimente você mesmo
extends Node
func _ready():
# Código de entrada/saída fornecido: mantenha-o como está
var count := int(OS.read_string_from_stdin())
for i in count:
print(Greeter.greet(OS.read_string_from_stdin()))
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação orientada a objetos
1Fundamentos da POO
Arquivos externosIntrodução à POOClasses vs. objetosA palavra-chave selfMétodosPropriedadesConstrutor (_init)Revisão - Calculadora simples4Polimorfismo
Revisitando a Sobrescrita de MétodosDuck TypingClasses e Métodos AbstratosDesign de InterfacesRevisão - Calculadora de Formas7Sinais
O que é um sinal?Declarando e emitindoConectando-se a sinaisSinais com argumentosRevisão - Sistema de saúde10Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite2Propriedades de Classe
Variáveis de Instância vs. EstáticasFunções EstáticasMétodos Setters de PropriedadeMétodos Getters de PropriedadePrivado por ConvençãoRecapitulando: Gerenciador de Conta Bancária5Encapsulamento
Membros públicos e privadosValidação com settersOcultação de informaçõesPropriedades somente para leituraRevisão - Sistema de registros de alunos8Conceitos Avançados de POO
Composição vs. HerançaClasses InternasNós como ComponentesRefCounted vs. NodeEnums em Classes3Herança
Herança básicaA palavra-chave superSobrescrita de métodosCadeias de herançaVerificações de tipo com isRevisão - Hierarquia de funcionários6Métodos especiais
Introdução aos métodos virtuaisO método _to_stringIteradores personalizadosRevisão - Lista personalizada9Padrões de Projeto Parte 1
Introdução aos Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão StrategyPratique por conta própria: Compilador de GDScript online