0:00:00.115,0:00:03.180 בשלב זה אתה יכול להבין שאתה כבר מגדיר 0:00:03.180,0:00:07.202 פונקצייה פרטית בכל זמן [br]שאתה רוצה להנפיש את התוכנית שלך 0:00:07.202,0:00:09.191 פונקציית הציור (draw function). 0:00:09.191,0:00:13.436 להזכירך, זו תוכנית [br]המכונית המונפשת שלנו שוב. 0:00:13.436,0:00:16.992 יש לה המשתנה הזה ששמו[br]הוא x, הוא מתחיל ב-11. 0:00:16.992,0:00:22.648 ואז בתוך פונקציית draw,[br]הוא מצייר את המכונית במשתנה x זה 0:00:22.648,0:00:26.638 ואז היא מוסיפה 3 למשתנה x זה כל פעם 0:00:26.638,0:00:28.501 ואלו התוצאות במכונית 0:00:28.501,0:00:32.447 שנעה 3 פיקסלים על המסך ברציפות. 0:00:32.447,0:00:34.723 אז, כך זה עובד. 0:00:34.723,0:00:37.683 אבל עכשיו כשלמדת איך להכין פונקציה בעצמך, 0:00:37.683,0:00:41.583 ייתכן שאתה תוהה,[br]מה לגבי פונקציית draw? 0:00:41.583,0:00:44.109 למה היא תמיד נקראת 'draw'? 0:00:44.109,0:00:45.904 האם היא פונקציה מותאמת אישית? 0:00:45.904,0:00:48.894 ואלו הן שאלות מאוד טובות. 0:00:48.894,0:00:51.985 אתה רואה, בספריית "ProcessingJS", 0:00:51.985,0:00:56.132 הפונקציה 'draw' היא אחת מתוך כמה פונקציות[br]מוגדרות מראש 0:00:56.132,0:01:01.009 מה שנותן לתוכניות שלנו יותר שליטה [br]על מה שקורה עם הקנבס. 0:01:01.009,0:01:04.831 פונקציה מוגדרת מראש היא פונקציה[br]שכבר הוגדרה 0:01:04.831,0:01:07.209 על ידי ספריית ה-ProcessingJS. 0:01:07.209,0:01:11.149 אבל לעיתים קרובות זה מתחיל [br]בהגדרה ריקה (של הפונקציה). 0:01:11.149,0:01:17.045 למשל, בספריית ה-ProcessingJS, [br]יש קוד שנראה כמו זה: 0:01:17.045,0:01:19.434 {} () var draw = function 0:01:19.434,0:01:23.266 ואז הקוד רק ריק. ריק לחלוטין. 0:01:23.266,0:01:28.620 עכשיו, אנחנו טוענים את ספריית [br]ה-ProcessingJS [br]לתוך כל תוכנית פה באקדמיית קהאן. 0:01:28.620,0:01:30.904 אז את הקוד הזה מעולם לא ראית. 0:01:30.904,0:01:33.647 אבל תאמין לי, הוא קיים. 0:01:33.647,0:01:41.049 עכשיו אני אעיר שהקוד יצא מפני[br]ש-ProcessingJS כבר עושה לנו את זה. 0:01:41.049,0:01:45.308 עכשיו כשאתה מגדיר שוב 'draw'[br]בתוכנית הפרטית שלך, 0:01:45.308,0:01:49.809 ההגדרה החדשה "דורסת"[br]את ההגדרה הישנה הריקה. 0:01:49.809,0:01:51.632 ועכשיו הפונקציה 'draw' 0:01:51.632,0:01:55.497 עושה למעשה דברים מרגשים,[br]כמו לצייר מכונית. 0:01:55.497,0:02:01.375 עכשיו השאלה היא, למה הפונקציה 'draw' [br]נקראת שוב ושוב? 0:02:01.375,0:02:05.964 טוב, בספריית ה-ProcessingJS [br]יש רק קוד 0:02:05.964,0:02:11.111 שמגדיר לדפדפן לעשות זאת ולחזור ולחזור, 0:02:11.111,0:02:13.998 שוב ושוב ושוב. 0:02:13.998,0:02:19.239 אנחנו צריכים לשנות לפונקציה 'draw' את[br]שמה, כי זה השם של הפונקציה 0:02:19.239,0:02:22.073 ש-ProcessingJS קוראת לו שוב. 0:02:22.073,0:02:27.543 אם נשנה את שמה, כמו [br]שנשנה את זה ל 'drawCar'. 0:02:27.543,0:02:30.730 ובהתחלה נקבל שגיאה 'ללא הגדרה',[br]אז אנחנו צריכים לומר 'var drawCar'. 0:02:33.730,0:02:34.730 תוכל לראות, אם משנים 0:02:34.730,0:02:37.087 שם ל-drawCar, אנחנו לא יכולים[br]לראות אנימציה כלשהי. 0:02:37.087,0:02:39.651 וזה כך מפני שהפונקציה לא נקראת עוד 0:02:39.651,0:02:44.692 כי היא לא נקראת 'draw'. 0:02:44.692,0:02:47.188 אז אנו צריכים לשים את הקוד[br]שאנו רוצים לקרוא לו 0:02:47.188,0:02:50.796 בתוך פונקציה שתהיה מאויתת 'draw' בדיוק. 0:02:50.796,0:02:55.912 אז אני רק אעשה זאת שוב,[br]ואני רק אקרא ל-'drawCar' מכאן. 0:02:55.912,0:03:00.594 אהה! קיבלנו את זה בחזרה. 0:03:00.594,0:03:03.237 בסדר, אז זה צריך להיות בשם 'draw', 0:03:03.237,0:03:07.206 וזה גם אומר שאתה חייב לקרוא[br]לפונקציה המותאמת אישית בשם 'draw', 0:03:07.206,0:03:12.970 אלא אם כן אתה רוצה לטפל בהם [br]באופן מיוחד, ולקרוא להם שוב ושוב. 0:03:12.970,0:03:18.228 וגם תזכור, אתה לא יכול ליצור[br]פונקציות רבות בשם 'draw'. 0:03:18.228,0:03:23.528 רק ההגדרה האחרונה תיחשב. 0:03:23.528,0:03:27.889 אם יש לנו 'rect' פה בפנים-- 0:03:27.889,0:03:30.813 אז עכשיו אנו יכולים לראות שהמכונית[br]שלנו נראית שוב ושוב, 0:03:30.813,0:03:35.143 ורק ה'rect' נראה, כי רק ההגדרה[br]האחרונה נחשבת. 0:03:35.143,0:03:40.495 אז בואו ניפטר מזה. 0:03:40.495,0:03:43.166 עכשיו הפונקציה 'draw' היא לא רק [br]פונקציה מוגדרת מראש 0:03:43.166,0:03:48.289 שיש לה פעולות מיוחדות כאלו. 0:03:48.289,0:03:50.499 יש גם אוסף של פונקציות 0:03:50.499,0:03:52.682 כדי להגיב לאינטרקציות עכבר[br]ולחיצות במקלדת. 0:03:52.682,0:03:56.692 בואו נאמר שאנחנו רוצים שתהיה לנו תוכנית[br]שתצייר אליפסה צבועה 0:03:56.692,0:04:01.624 בכל מקום שהמשתמש מעביר את העכבר... 0:04:01.624,0:04:04.716 אז אנו יכולים לעשות זאת עם פונקציה כמו זו. 0:04:04.716,0:04:09.042 [הקלדה] 0:04:09.042,0:04:15.666 בסדר, או, נפלא. 0:04:19.998,0:04:22.545 עכשיו, הפונקציה הזאת נקראת שוב ושוב, 0:04:22.545,0:04:27.224 גם כשהמשתמש לא מזיז את העכבר,[br]כמו עכשיו. 0:04:27.224,0:04:31.176 והתוכנית הזאת, היא עובדת, היא עושה [br]מה שאנו רוצים שתעשה 0:04:31.176,0:04:34.703 היא מציירת את האליפסות היפות האלה[br]בכל רחבי המסך. 0:04:34.703,0:04:37.902 אבל כפי שמתברר, יש דרך טובה יותר[br]לעשות את אותו הדבר. 0:04:37.902,0:04:42.114 זה יעיל יותר. 0:04:42.114,0:04:44.288 אז אנחנו יכולים לשנות את 'draw'[br]ל-mouseMoved. 0:04:44.288,0:04:51.892 וזה עדיין עובד. 0:04:51.892,0:04:54.577 אתה רואה, הסביבה שלנו בודקת תוכניות 0:04:54.577,0:04:58.361 כדי לראות אם יש להן פונקציה מוגדרת[br]mouseMoved 0:04:58.361,0:05:00.754 ואם כך, הסביבה קוראת לפונקציה הזאת[br]בכל הזזת עכבר. 0:05:00.754,0:05:05.457 אבל היא לעולם לא תיקרא[br]אם המשתמש לא מזיז את העכבר. 0:05:05.457,0:05:10.029 אז לפני זה קראנו את הקוד[br]שבפונקציית 'draw' 0:05:10.029,0:05:13.423 כשאנחנו לא צריכים זאת,[br]שוב ושוב 0:05:13.423,0:05:15.908 ועכשיו, אנחנו קוראים את הקוד[br]של mouseMoved רק 0:05:15.908,0:05:20.265 כשהערכים של mouseX או mouseY משתנים. 0:05:20.265,0:05:23.292 אז התוכנית שלנו היא יותר יעילה, [br]וזה דבר טוב. 0:05:23.292,0:05:27.313 באופן כללי, אם אתה רק רוצה לשנות[br]את פלט התוכנית שלך 0:05:27.313,0:05:30.728 כשהמשתמש מזיז את העכבר,[br]אז זה יותר טוב לשים את הקוד 0:05:30.728,0:05:34.525 בתוך פונקציית 'mouseMoved'. 0:05:34.525,0:05:37.212 ויש עוד אוסף של פונקציות מוגדרות מראש [br]כמו זאת, 0:05:37.212,0:05:40.987 ואתה יכול לראות דוגמאות נוספות [br]ב-Documentation. 0:05:40.987,0:05:44.655 כמו mousePressed, mouseReleasedm [br]keyPressed, ועוד. 0:05:44.655,0:05:48.872 אז תזכור, אם אתה רוצה להשתמש[br]בפונקציה מיוחדת מוגדרת מראש, 0:05:48.872,0:05:53.993 כמו mouseMoved או draw, איית אותה נכון,[br]והשתמש בה נכון. 0:05:53.993,0:05:59.244 אם לא, תוודא שאתה מביא לפונקציות[br]המותאמות אישית שלך 0:05:59.244,0:06:03.410 שם חדש, ייחודי. 0:06:03.410,0:06:05.967 בהצלחה!