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

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


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

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

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

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

Gmaker delete underlying.png

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


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




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

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

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

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


שעונים[עריכה]

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

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

Gmaker clock dialog.png

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

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


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

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


Gmaker test save.png האם הבונוס באמת מופיע אחרי 10 שניות?




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

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

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

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




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

עכשיו תורכם:

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

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

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

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




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

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

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

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


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