Menu
CoddyTech

קבצים חיצוניים

חלק מהיחידה תכנות מונחה עצמים במסלול ה-GDScript של Coddy. שיעור 1 מתוך 65.

תוכניות אמיתיות מחולקות לכמה קבצים. כל קובץ .gd הוא סקריפט, וסקריפט אחד יכול להשתמש בסקריפט אחר.

כתבו class_name בראש הסקריפט כדי לתת לו שם גלובלי. לאחר מכן כל סקריפט אחר בפרויקט יוכל להשתמש בשם הזה ישירות, ללא שורת import:

# 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 אונליין