Problem connecting to Twitter. Please try again.
Problem connecting to Twitter. Please try again.
Problem connecting to Twitter. Please try again.
Problem connecting to Twitter. Please try again.
Problem connecting to Twitter. Please try again.
פרמטרים בפונקציות!
-
0:01 - 0:06חזרנו לתוכנה שלנו שמציירת את וינסטון, אבל הוספתי לה קצת טקסט.
-
0:06 - 0:11רואים, מה שאני רוצה לעשות זה למקם את וינסטון מתחת לכל אחת מהתוויות האלו,
-
0:11 - 0:13על מנת להראות אותו בכל נקודה בחיים שלו.
-
0:13 - 0:15אבל כרגע הוא מפוזר בכל מקום.
-
0:15 - 0:20זה בגלל שהגדרנו את faceX ו-faceY לערכים רנדומלים בתוך הפונקציה הזו.
-
0:20 - 0:27בקמום, מה שאנחנו רוצים להגיד לתוכנה זה ״היי, הנה כמה מיקומים מדוייקים שבהם אני רוצה שתציירי את וינסטון״
-
0:27 - 0:34ואז אני רוצה להיות מסוגלת להגדיר במדוייק את המיקום בכל פעם שאני קוראת לפונקציה, באותה הדרך שבה השתמשנו ב-()elipse וב-()rect.
-
0:34 - 0:40בסדר? בגלל שאני רוצה לשים וינסטון כאן, ווינסטון כאן, ווינסטון כאן, ווינסטון כאן,
-
0:40 - 0:45ואני לא רוצה סתם מקומות רנדומלים בכל פעם שאני קוראת לפונקציה (מפעילה את הפונקציה)
-
0:45 - 0:54אז בשביל לעשות את זה, צריכים להיות לנו פרמטרים ספציפיים עבור הפונקציה, גם בתוך הגדרת הפונקציה שלנו, פה למעלה,
-
0:54 - 0:58וגם בקריאה שלנו לפונקציה, כאן למטה, איפה שאנחנו קוראים לפונקציה עצמה.
-
0:58 - 1:11אז, עבור ()drawWinston, אנחנו רוצים להעביר לה את faceX ואת faceY, ולהשתמש בערכים האלו שאנחנו מעבירים במקום לייצר אותם רנדומלית.
-
1:11 - 1:15בואו נתחיל על ידי לחשוב מה היינו רוצים להעביר בקריאות לפונקציה כאן למטה.
-
1:15 - 1:20אנחנו רוצים למקם את ווינסטון מתחת לכל שורה של טקסט, אז אנחנו כנראה רוצים שנקודות ה-x וה-y
-
1:20 - 1:25של כל וינסטון יהיו קרובות למספרים שהעברנו לפונקציות ה-()text.
-
1:25 - 1:38אולי, אם ניקח נקודה שנמוכה ב-10 פיקסלים על ציר ה-y. אז אולי, הראשון יהיה 10 ו-30, ואז אולי 200, 230...
-
1:38 - 1:5010, 230.... 200,230. זה אותו הדבר כמו הקוארדינאטות של הטקסט, אני פשוט מוסיפה 10 לכל נקודה y, כי אני רוצה את זה טיפה נמוך יותר.
-
1:50 - 2:00אוקיי, אבל וינסטון לא זה. זה בכלל שלא אמרנו לפונקציה שלנו פה למעלה שאנחנו מעבירים לה פרמטרים, אז היא עדיין משתמש בערכים הרנדומלים האלו.
-
2:00 - 2:04על מנת להגיד לפונקציה, ״הי, אנחנו הולכים לתת לך מידע״,
-
2:04 - 2:09אנחנו צריכים לתת לפרמטרים האלו שם בתוך הסוגריים האלו.
-
2:09 - 2:17אז נקרא להם faceX ו-faceY, ונפריד ביניהם באמצעות פסיק, ואנחנו הולכים לקרוא להם ככה בגלל
-
2:17 - 2:25שאלו הם השמות שכבר השתמשנו בהם בתוך הפונקציה, בסדר? ככה לא נצטרך לשכתב את שאר הקוד שלנו.
-
2:25 - 2:29אבל עדיין, כלום לא קרה. וינסטון עדיין מפוזר בכל מקום.
-
2:29 - 2:36ובכן, אם תסתכלו בתחילת הפונקציה שלנו, אנחנו עדיין ״דורסים״ את faceX ו-faceY עם משתנים רנדומליים.
-
2:36 - 2:40אז, כל מה שאנחנו צריכים לעשות הוא למחוק את השורות האלו...
-
2:40 - 2:50טה-דה! ועכשיו, faceX ו-faceY מועברים אל תוך הפונקציה, והיא משתמשת בערכים שהעברנו לה כאן.
-
2:50 - 2:59עכשיו כמו שאתם יכולים לראות, לא בדיוק מיקמתי את וינסטון נכונה, בכלל ששכחתי שהטקסט מקבל את המיקום שלו לפי הפינה השמאלית העליונה,
-
2:59 - 3:07והפרצוף ממוקם לפי המרכז. אז, אני צריכה לשחק קצת עם המספרים שלי טיפה כאן, נכון?
-
3:07 - 3:13כנראה, אני צריכה להזיז את נקודה x לא מעט, אני צריכה להזיז את זה ל... אוקיי, נראה לי כאן
-
3:13 - 3:22נעבור על המספרים, ועכשיו כל מה שאני צריכה לשנות זה את המספרים שאני מעבירה לפונקציה, אני לא צריכה לשנות את ההגדרה של הפונקציה עצמה,
-
3:22 - 3:29בגלל שהיא תמיד תיקח את הערכים שאנחנו מעבירים לה, בסדר? בדיוק כמו עם הפונקציות ()elipse ו-()rect.
-
3:29 - 3:34אוקיי, אז סוג של מיקמתי את זה, אבל הבחנתי בזה שוינסטון גדול מדי.
-
3:34 - 3:36הוא מכסה את עצמו, הוא לא מתאים.
-
3:36 - 3:45אז, מכיוון ששמתי את כל הקוד שמצייר אותו בפונקציה, אני יכולה לשנות את הגודל של כל הוינסטונים בבת אחת פשוט על ידי שינוי שורת הקוד שמציירת את האליפסה.
-
3:45 - 3:51אז בואו נגיד שנעשה אותו 190, כן, וינסטון הולך להיות בדיאטה, על 190.
-
3:51 - 4:02יפה מאוד, אוקיי, אז עכשיו הוא מתאים הרבה יותר ואתם יודעים שאני יכולה להמשיך לשחק עם המספרים עד שהוא ייכנס נכון?
-
4:02 - 4:09מגניב. אז בואו נעשה סקירה אחרונה על מה הקוד הזה עושה. הוא מגדיר פונקציה בשם ()drawWinston,
-
4:09 - 4:15והפונקציה הזו מקבלת שני ערכים, והיא קוראת להם faceX ו-faceY,
-
4:15 - 4:25והערכים האלו בגדול מגיעים בצורה של משתנים בהם אנחנו יכולים להשתמש בכל מקום בפונקציה שלנו, בדיקו כמו השתמשנו במשתנים שהכרזנו עליהם למעלה
-
4:25 - 4:35ואז אנחנו יכולים לקרוא לפונקציה הזו מתי שאנחנו רוצים אחרי שאני מכריזים עליה, ולהעביר לה ערכים שונים, כך שהיא תשתמש בערכים החדשים האלו בכל ריצה.
-
4:35 - 4:41אז עכשיו הבנתם כמה פונקציות הן מגניבות. אנחנו יכולים להמציא קוד שיהיה ממש מועיל להשתמש בו שוב,
-
4:41 - 4:47אבל אנחנו גם יכולים להשתמש בפרמטרים בשביל להגיד ״היי, הנה משהו קטן שאפשר לשנות בקוד הזה, בשביל להתאים אותו״.
-
4:47 - 4:53זה כמו מתכון. אתם כותבים את ההוראות הכלליות, ואם אתם פתאום מבינים שאתם צריכים להאכיל ארבעה וינסטונים ולא וינסטון אחד,
-
4:53 - 4:58אז אתם לא צריכים להתחיל הכל מההתחלה, אלא פשוט לשנות את ההוראות המקוריות ולהכפיל הכל פי 4.
-
4:58 - 5:02אז עכשיו אתם יכולים להתחיל לחשוב על המתכונים בקוד שלכם! יאמי!
rgoldi edited Hebrew subtitles for Function Parameters (Video Version) |