כולנו יודעים - שכאשר הוא מופיע - זה אומר שיש בעיות עם האינטרנט. זה הזמן לשבת להרגע עם משחק נוסח שנות השמונים, דינוזאור שקופץ מעל שיחים, ומתחת לציפורים, במטרה להעביר את הזמן עד אשר יחזור החיבור האבוד. נושא המשחק הוא דינונזאור, מה שמרמז על החיים לפני האינטרנט (רשמי, מטעם גוגל) ומשחקים בו למעלה מ270 מליון משחקים בחודש (באמת רובם מאזורים עם אינטרנט לא אמין). ביתי בת החמש מאוד אוהבת לשחק בזה אבל מפריע לה שהיא נפסלת יותר מידי מהר. עם ידע בסיסי ביותר בJS, אפשר לסדר את זה, עם עוד כמה דברים על הדרך.
ראשית, לא חיביים שלא יהיה חיבור לאינטרנט בשביל להנות מהמשחק, אפשר פשוט לפתוח טאב חדש ולשים שם:
אחרי זה, פותחים אחר כבוד את הקונסול שאנחנו כבר מכירים, ונגשים הישר את תוך קרבי האוביקט. אבל רגע לפני כן נזכיר, שיש מושג של מחלקה, ויש מופע של מחלקה. אפשר להתיחס למחלקה כאל מסמך היוצר הוראות ותכונות של כל אחד מחברי המחלקה, ולאוביקט הוא מופע של המחלקה, ליצור חי וקיים שמקיים את החוקיות הזו שנמצאת במחלקה. למשל, מכונית, היא דבר בעל 4 גלגלים שיכול לסוע. זהו המסמך שמתאר את התכונות של מכונית. כאשר אני עושה מכונית בפס היצור ואיתה אני נוהג ממש על הכביש, זה מופע של המחלקה - כלומר אוביקט אשר מקיים את החוקים שנאמרו במסמך. זה על קצה המזלג ממש.
בשביל להמחיש את זה, נניח שיש לנו שני משימות. אחת, למנוע מהמשחק להפסק. כלומר שנוכל לראות את הדינוזאור הזה הולך והולך עד אין סוף. זה משהו שיכול להתקיים גם במסמך המקורי, לתקן שם שלא יהיה אפשרות להפסל, וגם במופע עצמו. נלך על הדרך הראשונה. לאחר מכן ננסה כבר אחרי שהאוביקט חי וקיים, לשנות את המהירות שלו ולזה יותר מתאים מופע של מחלקה. (בעקרון בשביל למנוע דברים כאלה בתכונות יותר חשובות ממשחק טפשי, הנוהל הוא למנוע אפשרות של מניפולציות כאלו, אבל ב"ה, בדינוזאור הם השאירו לנו את האופציה).
כאשר אנחנו "נפסלים" יש כזה ארוע שנזרק לחלל. אנחנו רוצים לתפוס אותו, ולשים שם משהו אחר מהפסקת המשחק.
לכן נגש למסמך המגדיר את המחלקה, שהJS הוא protoype ונדרוס את הארוע. בשביל הכיף, נדפיס משהו לקונסול. זה אמור להראות כך:
וככה באמת כל מופע של המחלקה שיווצר אחרי הדריסה, יהיה לו את הפונקציולות הזו.
לגבי המהירות, אנחנו נלך על המופע עצמו של המחלקה, על המכונית הנוסעת עצמה ולכן זה יהיה קצת אחרת, פניה לאינסטנס עצמו
שימו לב למהירות!! המהירות הדיפולטיבית היא 100, ואם רוצים יותר לאט כמובן, גם זה אפשרי. (שימו לב שלא נזרק הרבה game over במהירות הזו, וזה נקודה חשובה לעיון נוסף)
אפשר ללמוד הרבה, מכל דבר, תמיד, גם ממשחק.
ראשית, לא חיביים שלא יהיה חיבור לאינטרנט בשביל להנות מהמשחק, אפשר פשוט לפתוח טאב חדש ולשים שם:
קוד:
chrome://dino
בשביל להמחיש את זה, נניח שיש לנו שני משימות. אחת, למנוע מהמשחק להפסק. כלומר שנוכל לראות את הדינוזאור הזה הולך והולך עד אין סוף. זה משהו שיכול להתקיים גם במסמך המקורי, לתקן שם שלא יהיה אפשרות להפסל, וגם במופע עצמו. נלך על הדרך הראשונה. לאחר מכן ננסה כבר אחרי שהאוביקט חי וקיים, לשנות את המהירות שלו ולזה יותר מתאים מופע של מחלקה. (בעקרון בשביל למנוע דברים כאלה בתכונות יותר חשובות ממשחק טפשי, הנוהל הוא למנוע אפשרות של מניפולציות כאלו, אבל ב"ה, בדינוזאור הם השאירו לנו את האופציה).
כאשר אנחנו "נפסלים" יש כזה ארוע שנזרק לחלל. אנחנו רוצים לתפוס אותו, ולשים שם משהו אחר מהפסקת המשחק.
לכן נגש למסמך המגדיר את המחלקה, שהJS הוא protoype ונדרוס את הארוע. בשביל הכיף, נדפיס משהו לקונסול. זה אמור להראות כך:
קוד:
Runner.prototype.gameOver = ()=>{
console.log('ha ha!!')}
וככה באמת כל מופע של המחלקה שיווצר אחרי הדריסה, יהיה לו את הפונקציולות הזו.
לגבי המהירות, אנחנו נלך על המופע עצמו של המחלקה, על המכונית הנוסעת עצמה ולכן זה יהיה קצת אחרת, פניה לאינסטנס עצמו
קוד:
Runner.instance_.setSpeed(200)
שימו לב למהירות!! המהירות הדיפולטיבית היא 100, ואם רוצים יותר לאט כמובן, גם זה אפשרי. (שימו לב שלא נזרק הרבה game over במהירות הזו, וזה נקודה חשובה לעיון נוסף)
אפשר ללמוד הרבה, מכל דבר, תמיד, גם ממשחק.