[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.88,0:00:06.00,Default,,0000,0000,0000,,חזרנו לתוכנה שלנו שמציירת את וינסטון, אבל הוספתי לה קצת טקסט. Dialogue: 0,0:00:06.00,0:00:11.07,Default,,0000,0000,0000,,רואים, מה שאני רוצה לעשות זה למקם את וינסטון מתחת לכל אחת מהתוויות האלו, Dialogue: 0,0:00:11.07,0:00:13.21,Default,,0000,0000,0000,,על מנת להראות אותו בכל נקודה בחיים שלו. Dialogue: 0,0:00:13.21,0:00:15.20,Default,,0000,0000,0000,,אבל כרגע הוא מפוזר בכל מקום. Dialogue: 0,0:00:15.20,0:00:20.45,Default,,0000,0000,0000,,זה בגלל שהגדרנו את faceX ו-faceY לערכים רנדומלים בתוך הפונקציה הזו. Dialogue: 0,0:00:20.45,0:00:26.71,Default,,0000,0000,0000,,בקמום, מה שאנחנו רוצים להגיד לתוכנה זה ״היי, הנה כמה מיקומים מדוייקים שבהם אני רוצה שתציירי את וינסטון״ Dialogue: 0,0:00:26.71,0:00:34.05,Default,,0000,0000,0000,,ואז אני רוצה להיות מסוגלת להגדיר במדוייק את המיקום בכל פעם שאני קוראת לפונקציה, באותה הדרך שבה השתמשנו ב-()elipse וב-()rect. Dialogue: 0,0:00:34.05,0:00:40.46,Default,,0000,0000,0000,,בסדר? בגלל שאני רוצה לשים וינסטון כאן, ווינסטון כאן, ווינסטון כאן, ווינסטון כאן, Dialogue: 0,0:00:40.46,0:00:44.62,Default,,0000,0000,0000,,ואני לא רוצה סתם מקומות רנדומלים בכל פעם שאני קוראת לפונקציה (מפעילה את הפונקציה) Dialogue: 0,0:00:44.62,0:00:53.72,Default,,0000,0000,0000,,אז בשביל לעשות את זה, צריכים להיות לנו פרמטרים ספציפיים עבור הפונקציה, גם בתוך הגדרת הפונקציה שלנו, פה למעלה, Dialogue: 0,0:00:53.72,0:00:58.03,Default,,0000,0000,0000,,וגם בקריאה שלנו לפונקציה, כאן למטה, איפה שאנחנו קוראים לפונקציה עצמה. Dialogue: 0,0:00:58.03,0:01:10.76,Default,,0000,0000,0000,,אז, עבור ()drawWinston, אנחנו רוצים להעביר לה את faceX ואת faceY, ולהשתמש בערכים האלו שאנחנו מעבירים במקום לייצר אותם רנדומלית. Dialogue: 0,0:01:10.76,0:01:15.21,Default,,0000,0000,0000,,בואו נתחיל על ידי לחשוב מה היינו רוצים להעביר בקריאות לפונקציה כאן למטה. Dialogue: 0,0:01:15.21,0:01:20.07,Default,,0000,0000,0000,,אנחנו רוצים למקם את ווינסטון מתחת לכל שורה של טקסט, אז אנחנו כנראה רוצים שנקודות ה-x וה-y Dialogue: 0,0:01:20.07,0:01:25.13,Default,,0000,0000,0000,,של כל וינסטון יהיו קרובות למספרים שהעברנו לפונקציות ה-()text. Dialogue: 0,0:01:25.13,0:01:37.71,Default,,0000,0000,0000,,אולי, אם ניקח נקודה שנמוכה ב-10 פיקסלים על ציר ה-y. אז אולי, הראשון יהיה 10 ו-30, ואז אולי 200, 230... Dialogue: 0,0:01:37.71,0:01:49.60,Default,,0000,0000,0000,,10, 230.... 200,230. זה אותו הדבר כמו הקוארדינאטות של הטקסט, אני פשוט מוסיפה 10 לכל נקודה y, כי אני רוצה את זה טיפה נמוך יותר. Dialogue: 0,0:01:49.60,0:02:00.13,Default,,0000,0000,0000,,אוקיי, אבל וינסטון לא זה. זה בכלל שלא אמרנו לפונקציה שלנו פה למעלה שאנחנו מעבירים לה פרמטרים, אז היא עדיין משתמש בערכים הרנדומלים האלו. Dialogue: 0,0:02:00.13,0:02:04.37,Default,,0000,0000,0000,,על מנת להגיד לפונקציה, ״הי, אנחנו הולכים לתת לך מידע״, Dialogue: 0,0:02:04.37,0:02:09.21,Default,,0000,0000,0000,,אנחנו צריכים לתת לפרמטרים האלו שם בתוך הסוגריים האלו. Dialogue: 0,0:02:09.21,0:02:17.38,Default,,0000,0000,0000,,אז נקרא להם faceX ו-faceY, ונפריד ביניהם באמצעות פסיק, ואנחנו הולכים לקרוא להם ככה בגלל Dialogue: 0,0:02:17.38,0:02:25.46,Default,,0000,0000,0000,,שאלו הם השמות שכבר השתמשנו בהם בתוך הפונקציה, בסדר? ככה לא נצטרך לשכתב את שאר הקוד שלנו. Dialogue: 0,0:02:25.46,0:02:29.33,Default,,0000,0000,0000,,אבל עדיין, כלום לא קרה. וינסטון עדיין מפוזר בכל מקום. Dialogue: 0,0:02:29.33,0:02:35.87,Default,,0000,0000,0000,,ובכן, אם תסתכלו בתחילת הפונקציה שלנו, אנחנו עדיין ״דורסים״ את faceX ו-faceY עם משתנים רנדומליים. Dialogue: 0,0:02:35.87,0:02:39.79,Default,,0000,0000,0000,,אז, כל מה שאנחנו צריכים לעשות הוא למחוק את השורות האלו... Dialogue: 0,0:02:39.79,0:02:50.33,Default,,0000,0000,0000,,טה-דה! ועכשיו, faceX ו-faceY מועברים אל תוך הפונקציה, והיא משתמשת בערכים שהעברנו לה כאן. Dialogue: 0,0:02:50.33,0:02:58.79,Default,,0000,0000,0000,,עכשיו כמו שאתם יכולים לראות, לא בדיוק מיקמתי את וינסטון נכונה, בכלל ששכחתי שהטקסט מקבל את המיקום שלו לפי הפינה השמאלית העליונה, Dialogue: 0,0:02:58.79,0:03:06.77,Default,,0000,0000,0000,,והפרצוף ממוקם לפי המרכז. אז, אני צריכה לשחק קצת עם המספרים שלי טיפה כאן, נכון? Dialogue: 0,0:03:06.77,0:03:13.24,Default,,0000,0000,0000,,כנראה, אני צריכה להזיז את נקודה x לא מעט, אני צריכה להזיז את זה ל... אוקיי, נראה לי כאן Dialogue: 0,0:03:13.24,0:03:22.41,Default,,0000,0000,0000,,נעבור על המספרים, ועכשיו כל מה שאני צריכה לשנות זה את המספרים שאני מעבירה לפונקציה, אני לא צריכה לשנות את ההגדרה של הפונקציה עצמה, Dialogue: 0,0:03:22.41,0:03:28.87,Default,,0000,0000,0000,,בגלל שהיא תמיד תיקח את הערכים שאנחנו מעבירים לה, בסדר? בדיוק כמו עם הפונקציות ()elipse ו-()rect. Dialogue: 0,0:03:28.87,0:03:33.71,Default,,0000,0000,0000,,אוקיי, אז סוג של מיקמתי את זה, אבל הבחנתי בזה שוינסטון גדול מדי. Dialogue: 0,0:03:33.71,0:03:35.96,Default,,0000,0000,0000,,הוא מכסה את עצמו, הוא לא מתאים. Dialogue: 0,0:03:35.96,0:03:45.50,Default,,0000,0000,0000,,אז, מכיוון ששמתי את כל הקוד שמצייר אותו בפונקציה, אני יכולה לשנות את הגודל של כל הוינסטונים בבת אחת פשוט על ידי שינוי שורת הקוד שמציירת את האליפסה. Dialogue: 0,0:03:45.50,0:03:51.13,Default,,0000,0000,0000,,אז בואו נגיד שנעשה אותו 190, כן, וינסטון הולך להיות בדיאטה, על 190. Dialogue: 0,0:03:51.13,0:04:01.65,Default,,0000,0000,0000,,יפה מאוד, אוקיי, אז עכשיו הוא מתאים הרבה יותר ואתם יודעים שאני יכולה להמשיך לשחק עם המספרים עד שהוא ייכנס נכון? Dialogue: 0,0:04:01.65,0:04:09.34,Default,,0000,0000,0000,,מגניב. אז בואו נעשה סקירה אחרונה על מה הקוד הזה עושה. הוא מגדיר פונקציה בשם ()drawWinston, Dialogue: 0,0:04:09.34,0:04:15.19,Default,,0000,0000,0000,,והפונקציה הזו מקבלת שני ערכים, והיא קוראת להם faceX ו-faceY, Dialogue: 0,0:04:15.19,0:04:25.16,Default,,0000,0000,0000,,והערכים האלו בגדול מגיעים בצורה של משתנים בהם אנחנו יכולים להשתמש בכל מקום בפונקציה שלנו, בדיקו כמו השתמשנו במשתנים שהכרזנו עליהם למעלה Dialogue: 0,0:04:25.16,0:04:35.00,Default,,0000,0000,0000,,ואז אנחנו יכולים לקרוא לפונקציה הזו מתי שאנחנו רוצים אחרי שאני מכריזים עליה, ולהעביר לה ערכים שונים, כך שהיא תשתמש בערכים החדשים האלו בכל ריצה. Dialogue: 0,0:04:35.00,0:04:41.23,Default,,0000,0000,0000,,אז עכשיו הבנתם כמה פונקציות הן מגניבות. אנחנו יכולים להמציא קוד שיהיה ממש מועיל להשתמש בו שוב, Dialogue: 0,0:04:41.23,0:04:46.91,Default,,0000,0000,0000,,אבל אנחנו גם יכולים להשתמש בפרמטרים בשביל להגיד ״היי, הנה משהו קטן שאפשר לשנות בקוד הזה, בשביל להתאים אותו״. Dialogue: 0,0:04:46.91,0:04:53.34,Default,,0000,0000,0000,,זה כמו מתכון. אתם כותבים את ההוראות הכלליות, ואם אתם פתאום מבינים שאתם צריכים להאכיל ארבעה וינסטונים ולא וינסטון אחד, Dialogue: 0,0:04:53.34,0:04:58.20,Default,,0000,0000,0000,,אז אתם לא צריכים להתחיל הכל מההתחלה, אלא פשוט לשנות את ההוראות המקוריות ולהכפיל הכל פי 4. Dialogue: 0,0:04:58.20,0:05:02.20,Default,,0000,0000,0000,,אז עכשיו אתם יכולים להתחיל לחשוב על המתכונים בקוד שלכם! יאמי!