Tệp bên ngoài
Thuộc phần Lập trình hướng đối tượng trong hành trình GDScript của Coddy. Bài học 1 trên 65.
Các chương trình thực tế được chia thành nhiều tệp. Mỗi tệp .gd là một script và một script có thể sử dụng script khác.
Viết class_name ở đầu tập lệnh để đặt tên toàn cục cho tập lệnh đó. Sau đó, mọi tập lệnh khác trong dự án đều có thể dùng trực tiếp tên đó mà không cần dòng import:
# greeter.gd
class_name Greeter
extends RefCounted
static func greet(player_name: String) -> String:
return "Hello, " + player_name + "!"static func tạo ra một hàm mà bạn gọi thông qua tên tập lệnh, Greeter.greet("Ada"). extends RefCounted là lớp cơ sở đơn giản dành cho các tập lệnh không phải là nút; các bài học tiếp theo sẽ giải thích về nó.
# main.gd
extends Node
func _ready():
print(Greeter.greet("Ada")) # Hello, Ada!Chương trình vẫn bắt đầu trong _ready() của main.gd. Các tệp khác chỉ định nghĩa những thứ mà main.gd sử dụng.
Godot đặt tên tệp theo kiểu snake_case và class_name theo kiểu PascalCase: class_name Greeter nằm trong greeter.gd. Mỗi tệp chỉ nên có một lớp.
Một tập lệnh không có class_name có thể được tải bằng đường dẫn của nó với preload():
const Helpers = preload("res://helpers.gd")
func _ready():
print(Helpers.shout("hi")) # HI!Thử thách
DễViết hàm tĩnh greet trong greeter.gd. Hàm nhận tên người chơi và trả về Hello, NAME!. Nếu tên trống, hàm trả về Hello, friend!.
Code được cung cấp đọc số lượng tên tiếp theo, rồi in ra Greeter.greet() cho từng tên. Với các tên Ada và một dòng trống, chương trình in ra:
Hello, Ada!
Hello, friend!Code của bạn nằm trong greeter.gd. main.gd chứa code đầu vào/đầu ra được cung cấp và bạn không thể chỉnh sửa tệp này.
Tự làm thử
extends Node
func _ready():
# Đoạn code đầu vào/đầu ra đã có sẵn: giữ nguyên
var count := int(OS.read_string_from_stdin())
for i in count:
print(Greeter.greet(OS.read_string_from_stdin()))
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Nền tảng về OOP
Tệp bên ngoàiGiới thiệu về OOPLớp và đối tượngTừ khóa selfPhương thứcThuộc tínhHàm khởi tạo (_init)Ôn tập: máy tính đơn giản4Tính đa hình
Xem lại cách ghi đè phương thứcĐịnh kiểu vịtLớp và phương thức trừu tượngThiết kế interfaceÔn tập: máy tính hình học7Tín hiệu
Tín hiệu là gì?Khai báo và phát tín hiệuKết nối với tín hiệuTín hiệu có đối sốÔn tập: hệ thống sức khỏe10Các mẫu thiết kế phần 2
Mẫu lệnhMẫu bộ chuyển đổiMẫu trang tríMẫu phương thức khuôn mẫuMẫu trạng tháiMẫu tổng hợp2Thuộc tính của lớp
Biến instance và biến staticHàm staticPhương thức thiết lập thuộc tínhPhương thức lấy thuộc tínhQuy ước về tính riêng tưÔn tập: trình quản lý tài khoản ngân hàng5Tính đóng gói
Thành viên công khai và riêng tưXác thực bằng phương thức setterẨn thông tinThuộc tính chỉ đọcÔn tập: hệ thống hồ sơ học sinh8Khái niệm OOP nâng cao
Kết hợp và kế thừaLớp bên trongNode dưới dạng thành phầnRefCounted và NodeEnum trong lớpTự luyện tập: Trình biên dịch GDScript online