תכנות לילדים באמצעות Game Maker/מריו/קפיצה

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש



קפיצה[עריכה]

מה זה קפיצה? כשמישהו קופץ הוא נע למעלה עד שהכבידה מושכת אותו חזרה למטה. כלומר: בשביל לקפוץ הוא צריך שהמהירות האנכית שלו תהיה למעלה, עד שהכבידה לאט-לאט תשנה אותה למטה והוא ייפול חזרה.

לכן בשביל שמריו יקפוץ צריך לשנות לו את המהירות האנכית כלפי מעלה ולהפעיל עליו כבידה. בואו נתכנת אותו לקפוץ כשלוחצים על מקש רווח:

  1. Gmaker key down.png להוסיף אירוע הקשה על Space.
  2. Gmaker set vspeed.png באירוע הזה, לשנות את המהירות האנכית לערך -15 כדי שמריו ינוע למעלה 15 פיקסלים בכל צעד.



Gmaker test save.png נסו להקפיץ את מריו באמצעות הקשה על הרווח. מה קורה אם מקפיצים אותו כשהוא באוויר?




מריו לא אמור לקפוץ אם הוא לא עומד על משהו, לכן לפני שמקפיצים אותו צריך לוודא שיש משהו מתחתיו:

  1. Gmaker if collide button.png להוסיף את הפעולה לבדיקת התנגשות לפני שינוי המהירות האנכית, ולוודא שיש משהו מתחת מריו (כלומר, במיקום היחסי y=1).



Gmaker test save.png עכשיו מריו קופץ רק כשאפשר. נסו להוסיף לחדר עוד משטחים ולקפץ ביניהם.




דמות מריו באוויר[עריכה]

כשמריו באוויר, הדמות שלו צריכה להיות התמונה של מריו מחזיק בכובע (כנראה כדי שלא יעוף לו מהראש). בשביל ליצור את הדמות הזאת צריך:

  1. Gmaker add sprite.png להוסיף דמות חדשה. כדאי לקרוא לה mario_jump.
  2. בחלון תכונות הדמות, להקליק על הכפתור Edit Sprite. ייפתח חלון עריכת דמות.
  3. להקליק על התפריט השמאלי - תפריט File ולבחור Create from Strip.
  4. לבחור את הקובץ ממנו לקחנו את דמות מריו ההולך.
  5. רוחב וגובה התמונות הוא שוב 80 פיקסלים, אבל הפעם מספר התמונות (number of images) הוא רק 1, והמיקום האופקי של התמונה (horizontal cell offset) הוא 3.
  6. להקליק OK.
  7. ללכת לתפריט Images ולבחור Crop כדי לקצץ את השוליים הריקים של התמונה. בשדה Border לכתוב 0 כי אין צורך בשוליים סביב התמונה.
  8. להקליק על ה-וי הירוק.

אפשר לראות שהרוחב של הדמות החדשה הוא 33 פיקסלים. אם פותחים את חלון תכונות הדמות של מריו ההולך, רואים ששם הרוחב הוא רק 31 פיקסלים. זה אומר שיכול להיות שמריו ההולך יוכל לעבור במקום מסוים בלי להתנגש בכלום, אבל כשהוא יהפוך למריו הקופץ הוא פתאום יתנגש בקיר ויתקע.

בשביל למנוע מצב כזה, צריך לשנות את המלבן המקיף של דמות מריו הקופץ: בחלון תכונות הדמות של מריו הקופץ לשנות את ה-Bounding Box ל-Manual ולכתוב 30 בשדה Right. ככה יהיה לדמות מריו הקופץ אותו מלבן מקיף כמו לדמות מריו ההולך.

גם את שאר האפשרויות צריך להתאים לאלה שבחרנו בדמות מריו ההולך: להוריד את הסימון מהתיבה Precise collision checking, ולשנות את ראשית הצירים (Origin) ככה שהשדה X יהיה 15.

עכשיו אפשר לשנות דמות כשמריו באוויר:

  1. Gmaker step.png ללכת לאירוע צעד.
  2. Gmaker set var.png להוסיף אחרי פעולת הכבידה את פעולת ההצבה, ובה להציב במשתנה sprite_index את הערך mario_jump כדי להחליף את הדמות של מריו לדמות מריו הקופץ.
  3. Gmaker block button.png להקיף את שתי הפעולות האלה בבלוק, כדי ששתיהן יתבצעו כשמריו באוויר.

וכמובן שצריך לחזור לדמות הרגילה כשמריו נוחת:

  1. Gmaker collision.png ללכת לאירוע ההתנגשות של מריו במשטח.
  2. Gmaker set var.png לשנות את המשתנה sprite_index חזרה לערך mario_walk כדי להחזיר את הדמות של מריו לדמות מריו ההולך.



Gmaker test save.png מריו מחזיק את הכובע כשהוא באוויר.




- קפיצה -