Menu
CoddyTech

Внешние файлы

Часть раздела Объектно-ориентированное программирование путешествия по GDScript на Coddy. Урок 1 из 65.

Настоящие программы разделены на несколько файлов. Каждый файл .gd — это скрипт, и один скрипт может использовать другой.

Напиши class_name в начале скрипта, чтобы задать ему глобальное имя. Тогда любой другой скрипт в проекте сможет использовать это имя напрямую, без строки импорта:

# greeter.gd
class_name Greeter
extends RefCounted

static func greet(player_name: String) -> String:
	return "Hello, " + player_name + "!"

static func создаёт функцию, которую можно вызвать через имя скрипта: Greeter.greet("Ada"). extends RefCounted — это простой базовый класс для скриптов, которые не являются узлами; следующие уроки объяснят его.

# main.gd
extends Node

func _ready():
	print(Greeter.greet("Ada")) # Hello, Ada!

Программа по-прежнему запускается в _ready() файла main.gd. В остальных файлах только определяются элементы, которые использует main.gd.

Godot называет файлы в snake_case, а class_name — в PascalCase: class_name Greeter находится в greeter.gd. Размещай один класс в каждом файле.

Скрипт без class_name можно загрузить по его пути с помощью preload():

const Helpers = preload("res://helpers.gd")

func _ready():
	print(Helpers.shout("hi")) # HI!
challenge icon

Задание

Легко

Напиши статическую функцию greet в greeter.gd. Она принимает имя игрока и возвращает Hello, NAME!. Если имя пустое, она возвращает Hello, friend!.

Предоставленный код считывает, сколько имён следует далее, а затем для каждого выводит Greeter.greet(). Для имён Ada и пустой строки он выводит:

Hello, Ada!
Hello, friend!

Твой код нужно поместить в greeter.gd. В main.gd находится предоставленный код ввода/вывода, его нельзя редактировать.

Попробуйте сами

extends Node

func _ready():
	# Предоставленный код ввода-вывода: оставьте его без изменений
	var count := int(OS.read_string_from_stdin())
	for i in count:
		print(Greeter.greet(OS.read_string_from_stdin()))
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript