בשלב הזה בטח הבנתם שאתם מגדירים פונקציה מסויימת
בכל פעם שאתם רוצים לעשות אנימציה בתוכנה שלכם, פונקציית ה-"Draw".
על מנת להזכיר לכם, הנה תוכנת הרכב המונפש שלנו
אז זוכרים שיש לנו "var x = 11״
שזוהי נקודת המוצא של הרכב
ו-"var draw", שזה המוצא של כל הקוד של הציור שלנו
ואז אנחנו משנים את "x" שייגדל ב-3 בכל פעם
ואז אנחנו פשוט מתחילים מחדש ו-וואווו! זומי זומי זומי! (כך במקור - ב״ר)
עכשיו כשלמדתם איך לעשות פונקציות משלכם,
אתם בטח תוהים לעצמכם, ״מה זו הפונקציית draw הזו? היא פונקציה מיוחדת? למה תמיד קוראים לה draw?"
ובכן, אלו שאלות מצויינות.
תראו, בסביבה שלנו פה באקדמיית קאהן, יש פונקציות ״גלובליות״ מיוחדות.
אני קוראת להם ״פונקציות קסם״ אבל זה רק השם שלי לפונקציות האלו.
כעקרון כשאנחנו מריצים את התוכנה שלכם, אנחנו מחפשים לראות אם הגדרתם פונקציות מסויימות עם שמות ספציפיים,
כמו ״Draw", ואם כן, אנחנו קוראים להן בזמנים מסויימים.
למשל, כאשר אתם מגדירים את פונקציית "Draw" בקוד שלכם,
אז אנחנו מוצאים את הפונקציה ומסתכלים על הקוד שבתוכה
ואנחנו נקרא לקוד הזה שוב ושוב ושוב הכי מהר שנוכל.
אם לא תגדירו פונקציית draw, אז לא נקרא לכלום מכיוון שאין למי לקרוא.
זה אומר שאם נשנה את שם הפונקציה הזו ל- "drow"
- אוקיי, זה לא עבד
או ל-"DrawCar", אוקיי, זה לא עבד
אז אם נשנה את השם של הפונקציה התוכנה לא תמצא אותה מכיוון שהיא לא נקראת draw יותר
אז היא לא תריץ את הקוד הזה שוב ושוב ושוב ואז לא נישאר עם כלום.
זה אומר שאתם לא יכולים לקרוא לפונקציות שלכם בשם "Draw" אלא אם כן אתם רוצים שיתייחסו אליהן באופן ספציפי
וייקראו להן שוב ושוב ושוב.
"Draw" היא לא פונקציית הקסם היחידה
יש עוד כמה פונקציות שמגיבות לתנועת העכבר ולחיצות המקשים
בוא נסתכל על דוגמא של תוכנת אנימציה אחרת.
בואו נניח שהיינו רוצים לצייר כדור צבעוני בכל פעם שהמשתמש מזיז את העכבר שלו.
יש לנו את "draw" ואת "Fill" ואת "Ellipse״ ב-"(MouseX, MouseY, 10, 10)"
אוקיי, בואו ננסה את זה - או מגניב!
יש לנו את הכדור הצבעוני המגניב הזה שמסתובב לו פה.
אז הפונקציה הזו, הקוד שבתוך הפונקציה "Draw", ייקרא שוב ושוב
בגלל ששמנו אותו בתוך פונקציה שנקראת "Draw"
אז הוא ייקרא אפילו אם המשתמש לא מזיז את העכבר. זה נקרא ברגע זה ממש - אפילו שהעכבר שלי לא זז.
מסתבר, שיש דרך טובה יותר לעשות את זה שהיא יותר יעילה.
מה שאנחנו יכולים לעשות הוא לשנות את הפונקציה "Draw" לפונקציה "mouseMoved״
הסביבה שלנו תמיד בודקת תוכנות על מנת לראות אם מוגדרת בהן פונקציית ה-"mouseMoved״
אם כן, הפונקציה תיקרא בכל פעם שהמשתמש יזיז את העכבר שלו. אתם יכולים לראות שזה עדיין עובד.
אבל, היא לא תיקרא אם המשתמש לא יזיז את העכבר שלו - ברגע שאני אפסיק להזיז את העכבר, היא לא תיקרא יותר.
זוכרים שמקודם הייתה לנו את "Draw", הקוד הזה היה נקרא שוב ושוב ושוב, אפילו כשהעכבר לא זז.
עכשיו כשאנחנו משתמשים ב-"mouseMoved״ אנחנו קוראים לקוד רק כשאנחנו צריכים אותו - כשהעכבר באמת זז.
התוכנה שלנו הרבה יותר יעילה. באופן כללי, אם אתם רוצים לשנות את הפלט של התוכנה שלכם רק כשהעכבר זז
אז עדיף להשתמש ב-"mouseMoved״ מאשר ב-"Draw"
יש עוד הרבה פונקציות קסם כמו "mouseMoved״,
יש את "mousePressed״ ו-"mouseReleased" ו-"keyPressed" ואתם יכולים לקרוא עליהן הכל בתיעוד.
הכי חשוב לזכור שאם אתם רוצים להשתמש בפונקצית קסם, זכרו לאיית את שם הפונקציה נכון.
אם אתם לא רוצים להשתמש בפונקציות קסם, זכרו לתת לפונקציות שלכם שמות חדשים ושונים.
אוקיי, זה הכל! בהצלחה!