כבר למדתם איך ליצור משתנים משלכם ולהשתמש בהם.
עכשיו נלמד על שני סוגי משתנים מיוחדים: mouseX ו-mouseX
אין צורך ליצור את המשתנים האלו בעצמכם, ולמעשה עדיף שלא תעשו זאת, מכיוון שהם כבר קיימים.
אתם מבינים, התוכנה קובעת את הערכים של המשתנים האלו מאחורי הקלעים, מוודא שהערך של mouseX הוא תמיד נקודת ה-x של העכבר שלכם וmouseY הוא תמיד נקודת ה-y של העכבר.
זה הופך את זה לממש פשוט לעשות דברים אינטראקטיבים מגניבים שמתבססים על מיקום העכבר של המשתמש
שימו לב לאליפסה הזו שאני מציירת
כרגע אני מציירת אותה בנקודה 200,200
במקום, אני יכולה להשתמש במשתנים המיוחדים הללו ולצייר אותה בנקודות mouseX ו-mouseY
ועכשיו, אם אני מזיזה את העכבר שלי על גבי שולחן העבודה, תוכלו לראות שהאליפסה תמיד תצוייר איפה שהסמן שלי נמצא. כך שהיא למעשה עוקבת אחרי העכבר שלי!
עכשיו זה די מגניב. אתם יכולים לנחש מה אני מציירת?
אם אנחנו הולכים להשתמש ב-mouseX וב-mouseY אז חייבים להשתמש בהם בתוך לולאת הציור הזו, מכיוון ששימו לב מה קורה אם אנחנו מזיזים את שתי שורות הקוד הללו מחוץ ללולאה.
אתם רואים?
עכשיו, הם רק הולכות לרוץ פעם אחת, והאליפסה תצוייר איפה שהעכבר שלי היה רק בתחילת התוכנית.
אז בשביל זה אנחנו צריכים את הלולאה הזו. כיוון שנוכל לקרוא לפונקציית הציור שוב ושוב בזמן שהקוד רץ
אז אנחנו רוצים שכאשר אנחנו קוראים לפונקציית הציור, היא תבדוק מה הערכים של mouseX וmouseY ותצייר את האליפסה במיקום הזה.
מכיוון שאם תחשבו על זה, זה סוג של אנימציה - היא משתנה לאורך זמן, רק בדרך שונה.
עכשיו אנחנו יכולים לעשות כל מיני דברים כיפיים.
מה למשל אם במקום לצייר אותה בנקודה mouseX ו-mouseY נצייר אותה ב-mouseX ונקבע את mouseY בערך קבוע של 300?
עכשיו האליפסה רק עוקבת אחרי נקודת ה-x שלי ומתעלמת מנקודת ה-y שלי.
כן? אז אולי אני יכולה לצייר אותה בנקודה mouseX ו-mouseY שוב אבל להיפטר משורת ה-background() הזו.
עכשיו אנחנו יכולים לראות את כל האליפסות שציירנו קודם וקיבלנו ציור מופרע שכזה.
זה די מגניב. או, שאני יכולה להחליף בין המשתנים, לצייר את זה ב-mouseY וב-mouseX ועכשיו זה כמו מקודם
עכשיו זה מרגיש ממש מוזר. השליטה על העכבר עושה הפוך ממה שאני מצפה ממנה
אבל זה גם בסדר, אתם יכולים לתאר לעצמכם משחק שלם שבו צריך לצייר משהו או לעשות משהו בעזרת פקודות הפוכות.
אז זה הכל לגבי mouseX ו-mouseY! סופר קל להשתמש וסופר מגניב!