0:00:01.271,0:00:03.741 עד כה, ראינו איך ליצור מערך ואיך לגשת אליו. 0:00:03.741,0:00:12.859 אבל, בדיוק כמו משתנים אחרים, אחד הדברים[br]המגניבים לגבי מערכים הוא היכולת לשנות אותם[br]באופן דינמי בזמן שהתוכנית רצה. 0:00:12.859,0:00:15.805 אוקיי, תנו לי רגע להראות לכם למה אני מתכוונת. 0:00:15.805,0:00:21.172 יש לנו כאן תוכנית שמציגה את Hopper[br]שמחזיק כמה בלונים - ממש חמוד. 0:00:21.172,0:00:29.397 איך שזה עובד זה שיש לנו מערך של מיקומים[br]xPositions שיש בו שני מספרים, שאומרים[br]היכן אנחנו רוצים להציג את הבלונים. 0:00:29.397,0:00:35.471 ואז כאן למטה יש לנו לולאה,[br]והלולאה הזו עוברת על כל האיברים של המערך 0:00:35.471,0:00:46.810 ועבור כל אחד מהם, היא מציררת קו ממיקום[br]ה-x הזה ליד של Hopper,[br]ואז מציירת אליפסה במיקום ה-x הזה בגודל[br]30x40 פיקסלים, וזה הבלון שלנו. 0:00:46.810,0:00:58.343 אוקיי, מגניב. עכשיו שאנו רואים איך זה עובד,[br]אנחנו יודעים שאם נרצה שעוד בלון יופיע,[br]אנחנו יכולים פשוט להוסיף עוד מספר למערך.[br]למשל 300. 0:00:58.343,0:01:02.063 יפה. עכשיו יש לנו שלושה בלונים, ו-Hopper שמח. 0:01:02.063,0:01:10.932 אבל נניח שאנחנו רוצים לתת למשתמש שלא[br]יודע לתכנת את היכולת להוסיף בלונים חדשים. 0:01:10.932,0:01:17.801 אז רצינו לתת את התוכנית למשתמש ולומר לו -[br]"היי, אתה יכול ללחוץ איפה שאתה רוצה את הבלון,[br]והבלון יופיע." 0:01:17.801,0:01:20.688 זה יהיה מגניב, לא? אני חושבת שכן. 0:01:20.688,0:01:26.640 אז, איך נעשה את זה? אנחנו רוצים[br]שהתוכנית שלנו תשתנה עם הזמן, נכון? 0:01:26.640,0:01:30.278 בכל פעם שהמשתמש לוחץ,[br]בלון יופיע במקום שהוא לחץ. 0:01:30.278,0:01:37.637 נתחיל בלהזיז את כל הקוד הזה לתוך[br]פונקציית ציור (draw) כדי שיהיה קל[br]לשנות את זה עם הזמן. 0:01:37.637,0:01:43.185 נזיז את זה למטה ונוסיף הזחה ימינה. אוקיי, נהדר. 0:01:43.185,0:01:48.405 עכשיו נרצה לבדוק,[br]האם המשתמש לוחץ על העכבר ברגע זה? 0:01:48.405,0:01:55.339 אנחנו יכולים לעשות זאת עם תנאי if.[br]אז נרשום if (mouseIsPressed),[br]ואז נעשה משהו. 0:01:55.339,0:02:01.176 מה נעשה? אם העכבר לחוץ,[br]אנחנו רוצים איכשהו להוסיף מספר למערך הזה. 0:02:01.176,0:02:04.232 בואו נחזיר אותו למצב שיכיל רק שני איברים. אוקיי. 0:02:04.232,0:02:10.464 אנחנו רוצים להוסיף מספר למערך הזה איכשהו.[br]אני אראה לכם דרך אחת שנוכל לעשות זאת. 0:02:10.464,0:02:18.508 נרשום[br]xPositions[2] = mouseX; 0:02:18.508,0:02:21.681 אוקיי, תנו לי רק להראות לכם שזה עובד 0:02:21.681,0:02:26.640 לחצתי, והנה יש לי בלון. אז מה זה עשה? 0:02:26.640,0:02:38.236 זה אומר שאנחנו מסתכלים על המערך,[br]ומוצאים את האיבר במקום ה-2, ותזכרו שזה האיבר[br]השלישי כי המערכים שלנו מתחילים מאפס. 0:02:38.236,0:02:41.742 אבל אתם רואים שאין איבר שלישי, נכון?[br]אין שום דבר במקום הזה. 0:02:41.742,0:02:45.897 אז כתוב כאן שנמצא את המקום הזה,[br]ונשים בו את mouseX. 0:02:45.897,0:02:51.358 לא היה שם כלום, ועכשיו במקום כלום[br]זה יכיל את mouseX. 0:02:51.358,0:03:00.130 עכשיו המערך שלנו מכיל שלושה פריטים,[br]ולולאת ה-for הזו כאן למטה עוברת עליו,[br]ומציירת גם את הבלון השלישי הזה 0:03:00.130,0:03:04.027 די מגניב, עכשיו אני אלחץ עוד ונראה איך זה עובד. 0:03:04.027,0:03:10.690 אתם רואים שבכל פעם שאני לוחצת, זה מצייר[br]את הבלון השלישי במקום שלחצתי עם העכבר 0:03:10.690,0:03:18.938 זה כי אנחנו כל הזמן דורסים את המקום ה-2,[br]הדבר שנמצא באינדקס 2. 0:03:18.938,0:03:22.898 אנחנו כל הזמן דורסים אותו עם ה-mouseX הנוכחי. 0:03:22.898,0:03:34.574 אז תמיד יהיו לנו רק שלושה בלונים כי יש לנו[br]את זה במקום ה-0, את זה במקום ה-1,[br]ואנחנו תמיד משנים את המקום ה-2. אוקיי? 0:03:34.574,0:03:40.235 זה מגניב, אבל מה שאנחנו באמת רוצים זה לתת[br]למשתמש ליצור המון בלונים, נכון? 0:03:40.235,0:03:43.524 כך שבכל פעם שהוא לוחץ, יש בלון חדש. 0:03:43.524,0:03:50.852 זה אומר שאנחנו צריכים כל הזמן להגדיל[br]את האינדקס של האיבר במערך[br]שאנחנו שומרים בו את המיקום. 0:03:50.852,0:03:56.106 אנחנו לא רוצים שהוא יהיה 2 כל הזמן,[br]אנחנו רוצים שהוא יהיה 2, ואז 3, ואחר כך 4,[br]ואז 5, ואז 6, וכן הלאה. 0:03:56.106,0:04:01.019 אנחנו יכולים לעשות את זה באמצעות משתנה סופר -[br]counter. נרשום newInd = 2; 0:04:01.019,0:04:05.523 זה מה שהוא יתחיל איתו,[br]ואז כאן נרשום newInd במקום 2. 0:04:05.523,0:04:10.270 ואז מה שאנחנו באמת רוצים לעשות זה[br]לרשום [br]newInd++ 0:04:10.270,0:04:16.231 כלומר בכל פעם נוסיף לו 1.[br]הוא יתחיל בתור 2, ואז יהפוך ל-3, ואז ל-4. 0:04:16.231,0:04:18.473 בכל פעם שלוחצים על העכבר, האינדקס יגדל.[br]בואו ננסה את זה. 0:04:18.473,0:04:22.009 יופי! המון בלונים. מסיבת בלונים! 0:04:22.009,0:04:32.108 זה מגניב, נכון? אבל זו לא הדרך הכי טובה[br]לעשות את זה, כי מסתבר שלהוסיף פריטים[br]למערך זה משהו שנרצה לעשות הרבה 0:04:32.108,0:04:35.023 כך שיש לנו דרך פשוטה יותר לעשות זאת. 0:04:35.023,0:04:42.768 תנו לי רק למחוק את הדברים שעשינו.[br]אוקיי, אנחנו לא צריכים את זה יותר.[br]נהפוך את להערה. 0:04:42.768,0:04:50.996 אוקיי, אז עושים את זה כך -[br]xPositions.push ואז mouseX. 0:04:50.996,0:04:56.573 אז מה שעשינו כאן זה לקרוא למתודה push[br]על המערך xPositions. 0:04:56.573,0:05:05.232 כלומר אנחנו קוראים לסוג של פקודה על המערך.[br]אנחנו אומרים למערך, "היי, תכניס את הערך החדש[br]הזה, שנמצא ב-mouseX, תכניס אותו בסוף המערך". 0:05:05.232,0:05:12.467 בכל פעם שקוראים לקוד הזה, בכל פעם שהמשתמש[br]לוחץ על העכבר, אנחנו בודקים מההמיקום של העכבר[br]mouseX ונוסיף את המספר לסוף המערך. 0:05:12.467,0:05:16.768 כך שהמערך אמור לגדול ולגדול ולגדול.[br]בואו נתחיל מחדש וננסה את זה. 0:05:16.768,0:05:22.684 יפה, זה עבד![br]וזה הרבה פחות קוד ממה שהיה לנו קודם. אוקיי? 0:05:22.684,0:05:27.630 רוב הזמן, אתם תרצו להשתמש ב-push אם[br]אתם הולכים להוסיף דברים למערך בצורה הזאת. 0:05:27.630,0:05:32.182 וזה די מגניב כי אתם יכולים פשוט להגדיל[br]את המערכים עוד ועוד במהלך התוכנית. 0:05:32.182,0:05:36.017 למשל כשיש לכם אנימציה או כשיש משתמשים[br]שעושים דברים, אתם יכולים לעשות הרבה יותר. 0:05:36.017,0:05:41.295 אז עד עכשיו ראיתם בערך 90% מהדרכים[br]שבהם כנראה תשתמשו במערכים. 0:05:41.295,0:05:47.021 אבל יש הרבה דברים אחרים שתוכלו לעשות עם[br]מערכים. אז אם יש לכם שאלות, פשוט שאלו בדיונים. 0:05:47.021,0:05:51.000 אבל תוודאו שאתם שולטים היטב בכלים הבסיסיים האלו קודם.