Pliki zewnętrzne
Część sekcji Programowanie obiektowe ścieżki GDScript w Coddy. Lekcja 1 z 65.
Prawdziwe programy są podzielone na kilka plików. Każdy plik .gd jest skryptem, a jeden skrypt może korzystać z innego.
Wpisz class_name na górze skryptu, aby nadać mu nazwę globalną. Każdy inny skrypt w projekcie może wtedy używać tej nazwy bezpośrednio, bez instrukcji importu:
# greeter.gd
class_name Greeter
extends RefCounted
static func greet(player_name: String) -> String:
return "Hello, " + player_name + "!"static func tworzy funkcję, którą wywołujesz za pomocą nazwy skryptu, Greeter.greet("Ada"). extends RefCounted to podstawowa klasa bazowa dla skryptów, które nie są węzłami; wyjaśnią to kolejne lekcje.
# main.gd
extends Node
func _ready():
print(Greeter.greet("Ada")) # Hello, Ada!Program nadal uruchamia się w _ready() z pliku main.gd. Pozostałe pliki tylko definiują elementy używane przez main.gd.
Godot nazywa pliki w formacie snake_case, a class_name w formacie PascalCase: class_name Greeter znajduje się w pliku greeter.gd. Umieszczaj jedną klasę w każdym pliku.
Skrypt bez class_name można wczytać, podając jego ścieżkę w preload():
const Helpers = preload("res://helpers.gd")
func _ready():
print(Helpers.shout("hi")) # HI!Wyzwanie
ŁatwyNapisz funkcję statyczną greet w pliku greeter.gd. Przyjmuje ona imię gracza i zwraca Hello, NAME!. Gdy imię jest puste, zwraca Hello, friend!.
Dostarczony kod odczytuje, ile imion podano, a następnie wypisuje Greeter.greet() dla każdego z nich. Dla imion Ada i pustej linii wypisuje:
Hello, Ada!
Hello, friend!Twój kod umieść w pliku greeter.gd. Plik main.gd zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
extends Node
func _ready():
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
var count := int(OS.read_string_from_stdin())
for i in count:
print(Greeter.greet(OS.read_string_from_stdin()))
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektySłowo kluczowe selfMetodyWłaściwościKonstruktor (_init)Powtórka – prosty kalkulator4Polimorfizm
Ponowne omówienie przesłaniania metodDuck typingKlasy i metody abstrakcyjneProjektowanie interfejsówPowtórzenie – kalkulator kształtów7Sygnały
Czym jest sygnał?Deklarowanie i emitowanieŁączenie z sygnałamiSygnały z argumentamiPodsumowanie — system zdrowia10Wzorce projektowe, część 2
Wzorzec poleceniaWzorzec adapteraWzorzec dekoratoraWzorzec metody szablonowejWzorzec stanuWzorzec kompozytu2Właściwości klas
Zmienne instancji a zmienne statyczneFunkcje statyczneSettery właściwościGettery właściwościPrywatne z konwencjiPodsumowanie — menedżer kont bankowych5Enkapsulacja
Elementy publiczne i prywatneWalidacja za pomocą setterówUkrywanie informacjiWłaściwości tylko do odczytuPodsumowanie – system ewidencji uczniów8Zaawansowane koncepcje OOP
Kompozycja a dziedziczenieKlasy wewnętrzneWęzły jako komponentyRefCounted a NodeTypy wyliczeniowe w klasach11Projekt: Zarządzanie biblioteką
Przegląd projektuKlasy książki i użytkownika3Dziedziczenie
Podstawy dziedziczeniaSłowo kluczowe superNadpisywanie metodŁańcuchy dziedziczeniaSprawdzanie typów za pomocą isPodsumowanie – hierarchia pracowników6Metody specjalne
Wprowadzenie do metod wirtualnychMetoda _to_stringWłasne iteratoryPodsumowanie — własna lista9Wzorce projektowe — część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec StrategyPoćwicz samodzielnie: Kompilator GDScript online