[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.74,0:00:07.34,Default,,0000,0000,0000,,במדריך האחרון שלנו, הראינו לכם כיצד אפשר להנפיש כדור שייקפוץ על הקירות בעזרת הפונקציה draw והצהרות if. Dialogue: 0,0:00:07.34,0:00:08.64,Default,,0000,0000,0000,,בואו נעבור על זה. Dialogue: 0,0:00:08.64,0:00:12.41,Default,,0000,0000,0000,,ראשית, הגדרנו כמה משתנים עבור המיקום והמהירות של הכדור. Dialogue: 0,0:00:12.41,0:00:17.24,Default,,0000,0000,0000,,לאחר מכן, בפונקצית ה-draw, שהיא פונקציה מיוחדת שנקראת שוב ושוב ושוב כשהתוכנה שלכם רצה, Dialogue: 0,0:00:17.24,0:00:20.91,Default,,0000,0000,0000,,צבענו מחדש את הרקע וציירנו אליפסה על השולחן עבודה Dialogue: 0,0:00:20.91,0:00:27.78,Default,,0000,0000,0000,,ומיקמנו את האליפסה הזו בהתבסס על המיקום של המשתנים והמהירות ואיך שהם משפיעים אחד על השני. Dialogue: 0,0:00:27.78,0:00:31.20,Default,,0000,0000,0000,,עכשיו, מבלי להשתמש בהצהרות if, הכדור שלנו פשוט ימשיך לזוז לנצח Dialogue: 0,0:00:31.20,0:00:32.86,Default,,0000,0000,0000,,או עד שנלחץ על אתחול מחדש. Dialogue: 0,0:00:32.86,0:00:36.36,Default,,0000,0000,0000,,אז הוספנו שני משפטי if כאן למטה Dialogue: 0,0:00:36.44,0:00:40.60,Default,,0000,0000,0000,,על מנת לבדוק אם הכדור שלנו קרוב לצד ימין של המסך או לצד שמאל של המסך Dialogue: 0,0:00:40.61,0:00:45.31,Default,,0000,0000,0000,,ואם כן, אנחנו נשנה את המהירות שלו בצורה חיובית או שלילית כך שהכדור בעצם ייקפוץ חזרה מהקיר. Dialogue: 0,0:00:45.31,0:00:50.07,Default,,0000,0000,0000,,אז כרגע פשוט יש לנו את הכדור הזה, שקופץ הלוך ושוב לנצח. Dialogue: 0,0:00:50.07,0:00:53.67,Default,,0000,0000,0000,,אז זה היה די מגניב, ויש עוד הרבה אנימציות מגניבות שאנחנו יכולים לעשות עם זה. Dialogue: 0,0:00:53.67,0:00:57.68,Default,,0000,0000,0000,,אבל כרגע, אני רוצה להוסיף התערבויות של המשתמש בתוכנה. Dialogue: 0,0:00:57.68,0:01:00.07,Default,,0000,0000,0000,,כרגע, התוכנה היא כמו תוכנית טלויזיה. Dialogue: 0,0:01:00.07,0:01:04.94,Default,,0000,0000,0000,,אם תתנו אותה לחבר, והחבר שלכם לא יודע לתכנת, הם לא באמת יוכלו להתערב בתוכנה. Dialogue: 0,0:01:04.94,0:01:07.61,Default,,0000,0000,0000,,כל מה שהם יוכלו לעשות זה לצפות, שזה מגניב, Dialogue: 0,0:01:07.61,0:01:10.34,Default,,0000,0000,0000,,אבל יכול להיות הרבה יותר מגניב אם הם היו יכולים לעשות משהו. Dialogue: 0,0:01:10.34,0:01:13.47,Default,,0000,0000,0000,,אז בואו ניתן למשתמש כמה דרכים לשלוט בה. Dialogue: 0,0:01:13.47,0:01:20.16,Default,,0000,0000,0000,,זוכרים שמוקדם יותר למדנו על שני משתנים גלובאלים מיוחדים בשם mouseX ו-mouseY? Dialogue: 0,0:01:20.16,0:01:25.97,Default,,0000,0000,0000,,המשתנים האלו מחזירים ערכים שאומרים לנו מה המיקום הנוכחי של העכבר של המשתמש Dialogue: 0,0:01:25.97,0:01:28.78,Default,,0000,0000,0000,,והם דרך מעולה לגרום לתוכנית שלנו להיות יותר אינטראקטיבית. Dialogue: 0,0:01:28.78,0:01:31.24,Default,,0000,0000,0000,,אז בואו נחשוב, איך נוכל להשתמש בהם? Dialogue: 0,0:01:31.24,0:01:34.03,Default,,0000,0000,0000,,ובכן, נוכל לשים אותם בתוך פונקציית ה-draw איפשהו Dialogue: 0,0:01:34.03,0:01:39.50,Default,,0000,0000,0000,,בגלל שזה החלק היחיד בתוכנה שנקרא שוב ושוב ושוב. Dialogue: 0,0:01:39.50,0:01:44.55,Default,,0000,0000,0000,,כל דבר מחוץ ל-draw נקרא רק פעם אחת, כשהתוכנה רצה בפעם הראשונה. Dialogue: 0,0:01:44.55,0:01:48.14,Default,,0000,0000,0000,,אז זה לא הגיוני להשתמש ב-mouseX וב-mouseY שם Dialogue: 0,0:01:48.14,0:01:51.24,Default,,0000,0000,0000,,כי למשתמש לא יהיה צ׳אנס להשתמש בזה Dialogue: 0,0:01:51.24,0:01:57.28,Default,,0000,0000,0000,,בתוך ה-draw, אנחנו מציירים את הגדול במרחק של 200 פיקסלים מהגבול העליון של המסך Dialogue: 0,0:01:57.28,0:02:01.24,Default,,0000,0000,0000,,מה אם נחליף את ההגדרה הזו עם mouseY? Dialogue: 0,0:02:01.24,0:02:02.74,Default,,0000,0000,0000,,מכיוון שזהו המיקום על ציר ה-y נכון? Dialogue: 0,0:02:02.74,0:02:08.53,Default,,0000,0000,0000,,ככה הוא פשוט יוסיף את מיקום ה-y בהתאם לאיפה שנקודת ה-y של המשתמש נמצאת, נכון? Dialogue: 0,0:02:08.53,0:02:14.36,Default,,0000,0000,0000,,אז בואו ננסה את זה. על ידי הזזת הסמן שלי למעלה ולמטה, אני משנה את הקו שבו הכדור שלי יזוז Dialogue: 0,0:02:14.36,0:02:18.20,Default,,0000,0000,0000,,זה די מגניב, אבל אני רוצה להשתמש גם ב-mouseX Dialogue: 0,0:02:18.20,0:02:19.86,Default,,0000,0000,0000,,אז איך עושים את זה? Dialogue: 0,0:02:19.86,0:02:22.44,Default,,0000,0000,0000,,ובכן, למה שלא נייצר עוד כדור? Dialogue: 0,0:02:22.44,0:02:25.94,Default,,0000,0000,0000,,ונגדיר שהכדור הזה יזוז בציר ההופכי - למעלה ולמטה. Dialogue: 0,0:02:25.94,0:02:30.03,Default,,0000,0000,0000,,ושם פשוט ניתן למשתמש לשלוט במיקום ה-x של הכדור Dialogue: 0,0:02:30.03,0:02:32.61,Default,,0000,0000,0000,,אז אנחנו בעצם עושים את ההופכי למה שעשינו עד כה Dialogue: 0,0:02:32.61,0:02:40.64,Default,,0000,0000,0000,,נשתמש ב-ellipse וניתן לה את הפרמטרים mouseX, position ו-50,50 Dialogue: 0,0:02:40.64,0:02:46.91,Default,,0000,0000,0000,,אוקיי, תסתכלו על זה! עכשיו יש לי שני כדורים שאני שולטת בהם, שהולכים לכיוונים מנוגדים Dialogue: 0,0:02:46.91,0:02:50.08,Default,,0000,0000,0000,,אבל אני עדיין לא שמחה Dialogue: 0,0:02:50.08,0:02:53.44,Default,,0000,0000,0000,,אני רוצה לתת למשתמש אפילו יותר שליטה Dialogue: 0,0:02:53.44,0:02:56.94,Default,,0000,0000,0000,,אני רוצה לתת למשתמש את הכוח להפעיל את הכדור השני Dialogue: 0,0:02:56.94,0:03:01.41,Default,,0000,0000,0000,,ממש ליצור אותו, על ידי לחיצה עם העכבר שלו Dialogue: 0,0:03:01.41,0:03:07.34,Default,,0000,0000,0000,,אז אני בעצם צריכה לדעת מתי המשתמש לוחץ על העכבר שלו Dialogue: 0,0:03:07.34,0:03:12.94,Default,,0000,0000,0000,,למזלנו, בדיוק בשביל זה יש לנו משתנה בוליאני מיוחד Dialogue: 0,0:03:12.94,0:03:19.36,Default,,0000,0000,0000,,הוא נקרא mouseIsPressed ואנחנו יכולים להשתמש בו בתוך הצהרת ה-if Dialogue: 0,0:03:19.36,0:03:22.34,Default,,0000,0000,0000,,אז בואו נראה, זה הכדור השני שלנו Dialogue: 0,0:03:22.34,0:03:31.94,Default,,0000,0000,0000,,אז אנחנו יכולים לכתוב פה שאם mouseIsPressed, ואז אנחנו נזיז את הקריאה לאליפסה לכאן. Dialogue: 0,0:03:31.94,0:03:40.86,Default,,0000,0000,0000,,אז מה שזה עושה עכשיו, זה אומר לתוכנה שלנו שתצייר את האליפסה רק אם זה נכון Dialogue: 0,0:03:40.86,0:03:46.03,Default,,0000,0000,0000,,ו-mouseIsPressed יהיה נכון רק אם המשתמש יילחץ על העכבר שלו Dialogue: 0,0:03:46.03,0:03:48.20,Default,,0000,0000,0000,,בואו ננסה את זה Dialogue: 0,0:03:48.20,0:03:50.34,Default,,0000,0000,0000,,טה דה! Dialogue: 0,0:03:50.34,0:03:53.36,Default,,0000,0000,0000,,עכשיו אני יכולה לגרום לכדור להופיע מתי שאני לוחצת על העכבר Dialogue: 0,0:03:53.36,0:03:58.41,Default,,0000,0000,0000,,הוא פשוט יופיע מהיקום המקביל שלו, תופיע! תופיע! תופיע! Dialogue: 0,0:03:58.41,0:04:00.03,Default,,0000,0000,0000,,זה אדיר! Dialogue: 0,0:04:00.03,0:04:04.74,Default,,0000,0000,0000,,הדבר המעניין לגבי המשתנה הזה mouseIsPressed Dialogue: 0,0:04:04.74,0:04:08.80,Default,,0000,0000,0000,,הוא שהערך של המשתנה הוא בהתאם לפעולה של המשתמש, לא בהתאם למה שהתוכנה שלנו עושה. Dialogue: 0,0:04:08.80,0:04:13.20,Default,,0000,0000,0000,,ומכיוון שהפונקציה draw רצה שוב ושוב ושוב Dialogue: 0,0:04:13.20,0:04:16.17,Default,,0000,0000,0000,,הפלט של התוכנה יישתנה לאורך זמן Dialogue: 0,0:04:16.17,0:04:18.74,Default,,0000,0000,0000,,והכל בעזרת קלט קטן מהמשתמש Dialogue: 0,0:04:18.74,0:04:22.03,Default,,0000,0000,0000,,בשילוב עם הכוח של הצהרות if ו-mouseIsPressed Dialogue: 0,0:04:22.03,0:04:26.24,Default,,0000,0000,0000,,יש לכם את כל מה שאתם צריכים בשביל ליצור דברים אדירים כמו כפתורים ותוכנות ציור. Dialogue: 0,0:04:26.24,0:04:29.00,Default,,0000,0000,0000,,ווהוו!