תכנות לילדים באמצעות Game Maker/מריו/קפיצה
קפיצה
[עריכה]מה זה קפיצה? כשמישהו קופץ הוא נע למעלה עד שהכבידה מושכת אותו חזרה למטה. כלומר: בשביל לקפוץ הוא צריך שהמהירות האנכית שלו תהיה למעלה, עד שהכבידה לאט-לאט תשנה אותה למטה והוא ייפול חזרה.
לכן בשביל שמריו יקפוץ צריך לשנות לו את המהירות האנכית כלפי מעלה ולהפעיל עליו כבידה. בואו נתכנת אותו לקפוץ כשלוחצים על מקש רווח:
- להוסיף אירוע הקשה על Space.
- באירוע הזה, לשנות את המהירות האנכית לערך -15 כדי שמריו ינוע למעלה 15 פיקסלים בכל צעד.
נסו להקפיץ את מריו באמצעות הקשה על הרווח. מה קורה אם מקפיצים אותו כשהוא באוויר?
מריו לא אמור לקפוץ אם הוא לא עומד על משהו, לכן לפני שמקפיצים אותו צריך לוודא שיש משהו מתחתיו:
- להוסיף את הפעולה לבדיקת התנגשות לפני שינוי המהירות האנכית, ולוודא שיש משהו מתחת מריו (כלומר, במיקום היחסי y=1).
עכשיו מריו קופץ רק כשאפשר. נסו להוסיף לחדר עוד משטחים ולקפץ ביניהם.
דמות מריו באוויר
[עריכה]כשמריו באוויר, הדמות שלו צריכה להיות התמונה של מריו מחזיק בכובע (כנראה כדי שלא יעוף לו מהראש). בשביל ליצור את הדמות הזאת צריך:
- להוסיף דמות חדשה. כדאי לקרוא לה mario_jump.
- בחלון תכונות הדמות, להקליק על הכפתור Edit Sprite. ייפתח חלון עריכת דמות.
- להקליק על התפריט השמאלי - תפריט File ולבחור Create from Strip.
- לבחור את הקובץ ממנו לקחנו את דמות מריו ההולך.
- רוחב וגובה התמונות הוא שוב 80 פיקסלים, אבל הפעם מספר התמונות (number of images) הוא רק 1, והמיקום האופקי של התמונה (horizontal cell offset) הוא 3.
- להקליק OK.
- ללכת לתפריט Images ולבחור Crop כדי לקצץ את השוליים הריקים של התמונה. בשדה Border לכתוב 0 כי אין צורך בשוליים סביב התמונה.
- להקליק על ה-וי הירוק.
אפשר לראות שהרוחב של הדמות החדשה הוא 33 פיקסלים. אם פותחים את חלון תכונות הדמות של מריו ההולך, רואים ששם הרוחב הוא רק 31 פיקסלים. זה אומר שיכול להיות שמריו ההולך יוכל לעבור במקום מסוים בלי להתנגש בכלום, אבל כשהוא יהפוך למריו הקופץ הוא פתאום יתנגש בקיר ויתקע.
בשביל למנוע מצב כזה, צריך לשנות את המלבן המקיף של דמות מריו הקופץ: בחלון תכונות הדמות של מריו הקופץ לשנות את ה-Bounding Box ל-Manual ולכתוב 30 בשדה Right. ככה יהיה לדמות מריו הקופץ אותו מלבן מקיף כמו לדמות מריו ההולך.
גם את שאר האפשרויות צריך להתאים לאלה שבחרנו בדמות מריו ההולך: להוריד את הסימון מהתיבה Precise collision checking, ולשנות את ראשית הצירים (Origin) ככה שהשדה X יהיה 15.
עכשיו אפשר לשנות דמות כשמריו באוויר:
- ללכת לאירוע צעד.
- להוסיף אחרי פעולת הכבידה את פעולת ההצבה, ובה להציב במשתנה sprite_index את הערך mario_jump כדי להחליף את הדמות של מריו לדמות מריו הקופץ.
- להקיף את שתי הפעולות האלה בבלוק, כדי ששתיהן יתבצעו כשמריו באוויר.
וכמובן שצריך לחזור לדמות הרגילה כשמריו נוחת:
- ללכת לאירוע ההתנגשות של מריו במשטח.
- לשנות את המשתנה sprite_index חזרה לערך mario_walk כדי להחזיר את הדמות של מריו לדמות מריו ההולך.
מריו מחזיק את הכובע כשהוא באוויר.
- | קפיצה | - |