0:00:01.737,0:00:07.341 במדריך האחרון שלנו, הראינו לכם כיצד אפשר להנפיש כדור שייקפוץ על הקירות בעזרת הפונקציה draw והצהרות if. 0:00:07.341,0:00:08.637 בואו נעבור על זה. 0:00:08.637,0:00:12.407 ראשית, הגדרנו כמה משתנים עבור המיקום והמהירות של הכדור. 0:00:12.407,0:00:17.240 לאחר מכן, בפונקצית ה-draw, שהיא פונקציה מיוחדת שנקראת שוב ושוב ושוב כשהתוכנה שלכם רצה, 0:00:17.240,0:00:20.907 צבענו מחדש את הרקע וציירנו אליפסה על השולחן עבודה 0:00:20.907,0:00:27.779 ומיקמנו את האליפסה הזו בהתבסס על המיקום של המשתנים והמהירות ואיך שהם משפיעים אחד על השני. 0:00:27.779,0:00:31.195 עכשיו, מבלי להשתמש בהצהרות if, הכדור שלנו פשוט ימשיך לזוז לנצח 0:00:31.195,0:00:32.862 או עד שנלחץ על אתחול מחדש. 0:00:32.862,0:00:36.364 אז הוספנו שני משפטי if כאן למטה 0:00:36.441,0:00:40.605 על מנת לבדוק אם הכדור שלנו קרוב לצד ימין של המסך או לצד שמאל של המסך 0:00:40.606,0:00:45.309 ואם כן, אנחנו נשנה את המהירות שלו בצורה חיובית או שלילית כך שהכדור בעצם ייקפוץ חזרה מהקיר. 0:00:45.309,0:00:50.071 אז כרגע פשוט יש לנו את הכדור הזה, שקופץ הלוך ושוב לנצח. 0:00:50.071,0:00:53.671 אז זה היה די מגניב, ויש עוד הרבה אנימציות מגניבות שאנחנו יכולים לעשות עם זה. 0:00:53.671,0:00:57.675 אבל כרגע, אני רוצה להוסיף התערבויות של המשתמש בתוכנה. 0:00:57.675,0:01:00.071 כרגע, התוכנה היא כמו תוכנית טלויזיה. 0:01:00.071,0:01:04.945 אם תתנו אותה לחבר, והחבר שלכם לא יודע לתכנת, הם לא באמת יוכלו להתערב בתוכנה. 0:01:04.945,0:01:07.606 כל מה שהם יוכלו לעשות זה לצפות, שזה מגניב, 0:01:07.606,0:01:10.340 אבל יכול להיות הרבה יותר מגניב אם הם היו יכולים לעשות משהו. 0:01:10.340,0:01:13.470 אז בואו ניתן למשתמש כמה דרכים לשלוט בה. 0:01:13.470,0:01:20.156 זוכרים שמוקדם יותר למדנו על שני משתנים גלובאלים מיוחדים בשם mouseX ו-mouseY? 0:01:20.156,0:01:25.972 המשתנים האלו מחזירים ערכים שאומרים לנו מה המיקום הנוכחי של העכבר של המשתמש 0:01:25.972,0:01:28.779 והם דרך מעולה לגרום לתוכנית שלנו להיות יותר אינטראקטיבית. 0:01:28.779,0:01:31.239 אז בואו נחשוב, איך נוכל להשתמש בהם? 0:01:31.239,0:01:34.029 ובכן, נוכל לשים אותם בתוך פונקציית ה-draw איפשהו 0:01:34.029,0:01:39.503 בגלל שזה החלק היחיד בתוכנה שנקרא שוב ושוב ושוב. 0:01:39.503,0:01:44.551 כל דבר מחוץ ל-draw נקרא רק פעם אחת, כשהתוכנה רצה בפעם הראשונה. 0:01:44.551,0:01:48.136 אז זה לא הגיוני להשתמש ב-mouseX וב-mouseY שם 0:01:48.136,0:01:51.243 כי למשתמש לא יהיה צ׳אנס להשתמש בזה 0:01:51.243,0:01:57.280 בתוך ה-draw, אנחנו מציירים את הגדול במרחק של 200 פיקסלים מהגבול העליון של המסך 0:01:57.280,0:02:01.242 מה אם נחליף את ההגדרה הזו עם mouseY? 0:02:01.242,0:02:02.739 מכיוון שזהו המיקום על ציר ה-y נכון? 0:02:02.739,0:02:08.530 ככה הוא פשוט יוסיף את מיקום ה-y בהתאם לאיפה שנקודת ה-y של המשתמש נמצאת, נכון? 0:02:08.530,0:02:14.362 אז בואו ננסה את זה. על ידי הזזת הסמן שלי למעלה ולמטה, אני משנה את הקו שבו הכדור שלי יזוז 0:02:14.362,0:02:18.196 זה די מגניב, אבל אני רוצה להשתמש גם ב-mouseX 0:02:18.196,0:02:19.863 אז איך עושים את זה? 0:02:19.863,0:02:22.445 ובכן, למה שלא נייצר עוד כדור? 0:02:22.445,0:02:25.945 ונגדיר שהכדור הזה יזוז בציר ההופכי - למעלה ולמטה. 0:02:25.945,0:02:30.030 ושם פשוט ניתן למשתמש לשלוט במיקום ה-x של הכדור 0:02:30.030,0:02:32.612 אז אנחנו בעצם עושים את ההופכי למה שעשינו עד כה 0:02:32.612,0:02:40.637 נשתמש ב-ellipse וניתן לה את הפרמטרים mouseX, position ו-50,50 0:02:40.637,0:02:46.906 אוקיי, תסתכלו על זה! עכשיו יש לי שני כדורים שאני שולטת בהם, שהולכים לכיוונים מנוגדים 0:02:46.906,0:02:50.075 אבל אני עדיין לא שמחה 0:02:50.075,0:02:53.445 אני רוצה לתת למשתמש אפילו יותר שליטה 0:02:53.445,0:02:56.944 אני רוצה לתת למשתמש את הכוח להפעיל את הכדור השני 0:02:56.944,0:03:01.407 ממש ליצור אותו, על ידי לחיצה עם העכבר שלו 0:03:01.407,0:03:07.340 אז אני בעצם צריכה לדעת מתי המשתמש לוחץ על העכבר שלו 0:03:07.340,0:03:12.945 למזלנו, בדיוק בשביל זה יש לנו משתנה בוליאני מיוחד 0:03:12.945,0:03:19.362 הוא נקרא mouseIsPressed ואנחנו יכולים להשתמש בו בתוך הצהרת ה-if 0:03:19.362,0:03:22.339 אז בואו נראה, זה הכדור השני שלנו 0:03:22.339,0:03:31.945 אז אנחנו יכולים לכתוב פה שאם mouseIsPressed, ואז אנחנו נזיז את הקריאה לאליפסה לכאן. 0:03:31.945,0:03:40.863 אז מה שזה עושה עכשיו, זה אומר לתוכנה שלנו שתצייר את האליפסה רק אם זה נכון 0:03:40.863,0:03:46.030 ו-mouseIsPressed יהיה נכון רק אם המשתמש יילחץ על העכבר שלו 0:03:46.030,0:03:48.195 בואו ננסה את זה 0:03:48.195,0:03:50.338 טה דה! 0:03:50.338,0:03:53.362 עכשיו אני יכולה לגרום לכדור להופיע מתי שאני לוחצת על העכבר 0:03:53.362,0:03:58.407 הוא פשוט יופיע מהיקום המקביל שלו, תופיע! תופיע! תופיע! 0:03:58.407,0:04:00.029 זה אדיר! 0:04:00.029,0:04:04.740 הדבר המעניין לגבי המשתנה הזה mouseIsPressed 0:04:04.740,0:04:08.805 הוא שהערך של המשתנה הוא בהתאם לפעולה של המשתמש, לא בהתאם למה שהתוכנה שלנו עושה. 0:04:08.805,0:04:13.195 ומכיוון שהפונקציה draw רצה שוב ושוב ושוב 0:04:13.195,0:04:16.171 הפלט של התוכנה יישתנה לאורך זמן 0:04:16.171,0:04:18.740 והכל בעזרת קלט קטן מהמשתמש 0:04:18.740,0:04:22.029 בשילוב עם הכוח של הצהרות if ו-mouseIsPressed 0:04:22.029,0:04:26.241 יש לכם את כל מה שאתם צריכים בשביל ליצור דברים אדירים כמו כפתורים ותוכנות ציור. 0:04:26.241,0:04:29.000 ווהוו!