תכנות לילדים באמצעות Game Maker/פק-מן/צעד 7: פירות


חפץ בונוסעריכה

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

קודם כל, צריך ליצור אובייקט לחפץ המיוחד. נקרא לו bonus - בּוֹנוּס. אפשר להשתמש בשבילו בדמות של הארטיק מהתיקייה שממנה לקחנו גם את שאר הדמויות למשחק, או למצוא דמות אחרת, או לצייר דמות משלך.

את האובייקט צריך להציב בכל אחד משני החדרים שיצרת, אבל הפעם אי אפשר סתם להקליק בשביל להציב אותו בחדר! אם מציבים אובייקט במקום שיש בו כבר אובייקט אחר, זה מוחק את האובייקט שהיה שם קודם. בדרך כלל זה טוב, כי לא נרצה שתהיה נקודה על קיר, למשל. אבל הפעם זה לא מתאים, כי חפץ הבונוס יופיע במקום שבו כבר הצבנו נקודה או את פקמן עצמו. לכן לפני שמקליקים כדי להציב אותו בחדר, צריך להוריד את הסימון מתיבת הסימון Delete underlying (דִילִיט אַנְדֵרְלַיִינְג) - מחק מה שמתחת.

 

עכשיו אפשר להקליק במקום של פקמן (או במקום אחר) ואז להציב את הבונוס.


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




הופעת והעלמת הבונוסעריכה

הדרך הכי פשוטה להסתיר אובייקט בלי למחוק אותו לגמרי היא להוציא אותו מהחדר. כשנרצה שהוא יופיע מחדש, פשוט נחזיר אותו לאיפה שהוא היה. בשביל זה נשתמש בשתי פעולות הזזה שנמצאות בלשונית move: העברה למקום אחר  , והעברה חזרה לנקודת ההתחלה  .

את ההעברה למקום אחר צריך לעשות מיד בהתחלה - בארוע היצירה של האובייקט  . בחלון אפשרויות הפעולה של פעולת ההעברה למקום אחר, צריך להגיד לאיזה מקום להעביר את האובייקט. השדות הם x ו-y - הקורדינטות של המקום החדש. אנחנו רוצים לתת קורדינטות של מקום מחוץ לחדר, לכן נכתוב שם, למשל, -100 באחד השדות - זה יציב את האובייקט מעל החדר או משמאלו, במקום שבכלל לא מוצג.

עכשיו צריך ארוע שבו נחזיר את הבונוס לנקודת ההתחלה. איזה ארוע? איך יודעים מתי מגיע הזמן להציג את הבונוס במבוך?


שעוניםעריכה

Game Maker מאפשר לאובייקטים להשתמש בשעונים מעוררים. השימוש בשעונים הוא באמצעות פעולה של כיוון שעון כדי שיעיר את האובייקט לפעולה אחרי כמה זמן, ובאמצעות ארוע של "צלצול" שעון שבו אפשר לעשות פעולות. (כמובן שהמשתמש לא ישמע שום צלצול - זה רק האובייקט שיתעורר לפעילות.) לכל אובייקט יש 12 שעונים מעוררים, וכל אחד מהם יכול להעיר את האובייקט לבצע רשימת פעולות שונה.

אנחנו רוצים להעיר את האובייקט בשביל שיחזיר את עצמו למסך. לכן נוסיף לארוע היצירה שלו את פעולת כיוון השעון המעורר, שנמצאת בלשונית main2:  .

בחלון אפשרויות הפעולה יש שני שדות:

  • number of steps (נַמְבֵּר אוֹף סְטֵפְּס) - מספר הצעדים. כאן קובעים בעוד כמה זמן השעון יצלצל. את הזמן סופרים לא בשעות או דקות או שניות, אלא בצעדים של המשחק. מאחר שמשחק מתקדם בקצב של 30 צעדים כל שניה, כתבתי 300 צעדים - ככה הבונוס יופיע אחרי עשר שניות.
  • in alarm no (אִין אַלַרְם נַמְבֵּר) - בשעון מס'. כאן קובעים איזה מ-12 השעונים לכוון (וכרגיל בתכנות, סופרים אותם מ-0 עד 11).


בינתים זה צריך להראות כך: עכשיו צריך להגיד לאובייקט מה לעשות כשהשעון מצלצל. בשביל זה נוסיף לו ארוע של צלצול שעון מעורר:  . בתפריט השעונים שצץ, צריך לבחור את השעון הראשון (שעון 0) כי זה השעון שכיוונו לצלצל.

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


  האם הבונוס באמת מופיע אחרי 10 שניות?




אבל זה לא מספיק - הבונוס צריך להשאר על המסך רק לכמה שניות, ואחר כך להעלם שוב. איך נעלים אותו? שוב בעזרת שעון מעורר! נוסיף גם לארוע הזה פעולה של כיוון שעון מעורר  . הפעם לא נכוון את שעון 0, כי כשהוא יצלצל זה יגרום לאובייקט שוב להופיע. במקום זאת נכוון את שעון 1. הפעם נכוון אותו לצלצל אחרי פחות זמן, למשל 150 צעדים.

אחרי שמכוונים שעון - צריך להגיד לאובייקט מה לעשות כשהוא מצלצל:

  •   להוסיף ארוע נוסף של צלצול שעון - הפעם לבחור את שעון 1 מהתפריט שצץ.
  •   להוסיף לארוע הזה את פעולת ההעברה למקום אחר, ולשלוח את הבונוס שוב מחוץ למסך.

  הבונוס אמור להופיע אחרי עשר שניות, ולהעלם אחרי חמש שניות נוספות.




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

 

עכשיו תורכם:

להשתמש בשעונים נוספים כדי לגרום לבונוס להופיע ולהעלם פעם שניה.

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

  •   להוסיף לאובייקט הבונוס ארוע התנגשות בפקמן.
  •   בארוע ההתנגשות, להעלות את הניקוד בכמות יפה.
  •   וגם להעלים את הבונוס מהמסך באמצעות פעולת ההעברה למקום אחר.

  נסו לאכול את הבונוס ולראות שבאמת קיבלתם ניקוד בהתאם.




עדכון רשימת העבודהעריכה

השלמנו את נושא הפירות - לפחות כרגע, לשני המבוכים הראשונים. רשימת העבודה שלנו עכשיו היא:

  • פקמן
  • קירות המבוך
  • נקודות שפקמן אוכל
  • פירות
  • רוחות
  • כדורי כוח
  • עוד מבוכים
  • (אולי) להוסיף חפצי בונוס שווים יותר למבוכים המתקדמים
  • (אולי) להאיץ את מהירות התנועה

מעניין לראות שכמעט בכל פעם שאנחנו משלימים סעיף, נוסף סעיף חדש לרשימה. זה אופייני מאוד לפיתוח תוכנה: ככל שעובדים על התוכנה יותר, מגלים יותר דברים שרוצים להוסיף לה.


הפריט הבא ברשימה - צעד 8: רוחות