קבצים חיצוניים
חלק מהיחידה תכנות מונחה עצמים במסלול ה-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!אתגר
קלכתבו את הפונקציה הסטטית 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()))
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמבוא ל-OOPמחלקות לעומת אובייקטיםמילת המפתח selfמתודותמאפייניםבנאי (_init)חזרה – מחשבון פשוט2מאפייני מחלקה
משתני מופע לעומת משתנים סטטייםפונקציות סטטיותקובעי מאפייניםמאחזרי מאפייניםפרטיים לפי מוסכמהסיכום – מנהל חשבון בנק5כימוס
איברים ציבוריים ופרטייםאימות באמצעות Settersהסתרת מידעמאפיינים לקריאה בלבדסיכום – מערכת לניהול רשומות תלמידיםתרגלו בעצמכם: קומפיילר GDScript אונליין