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

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


הכדורים[עריכה]

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

זה הרבה מאוד דברים לעשות! בואו נסדר אותם ברשימת עבודה:

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

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

עכשיו תורכם:

# ליצור אובייקט כדור כוח ולקרוא לו power (פַּאוּאֵר) - כוח. אפשר להשתמש בשבילו בדמות special מהתיקייה שממנה לקחנו את כל הדמויות.
  1. להציב ארבעה מופעים שלו במבוך, קרוב לפינות.
  2. ליצור לו ארוע התנגשות עם פקמן שדומה לארוע ההתנגשות של פקמן בנקודה, רק נותן יותר נקודות ולא בודק את מספר המופעים שנשארו. (אפשר פשוט לשכפל את ארוע ההתנגשות בנקודה, ואז למחוק מרשימת הפעולות את הפעולות המיותרות ולשנות את פעולת קביעת הניקוד.)

Gmaker test save.png נסו לאכול את כדורי הכוח ולראות שהניקוד עולה.




יש כדור כוח - אז אפשר לעבור לרוחות.

רוח מפוחדת[עריכה]

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

אז צריך להכין אובייקט כזה:

  1. ליצור אובייקט חדש בשם scared (סְקֵרְד) - מפוחד.
  2. לתת לו דמות של רוח מפוחדת, כמו הדמות scared בתיקייה שממנה לקחנו את שאר הדמויות.

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

בשביל להפוך את הצל לרוח המפוחדת, נוסיף עוד פעולה לארוע ההתנגשות של פקמן בכדור. זו תהיה הפעולה לשינוי אובייקט שנמצאת בלשונית main1: Gmaker change instance.png.

Gmaker change instance dialog.png

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

  • change into (צֵ'יינְג' אִינְטוּ) - שנה אל: אל איזה אובייקט לשנות את הצל. כאן צריך לבחור את אובייקט הרוח המפוחדת.
  • perform events (פֵּרְפוֹרְם אֵוֵונְטְס) - בצע ארועים: האם לבצע את הפעולות בארוע המחיקה של אובייקט הצל ובארוע היצירה של אובייקט הרוח המפוחדת. אנחנו נרצה לשנות כל מיני דברים בארוע היצירה של הרוח המפוחדת (כמו הכיוון והמהירות) לכן נשנה את השדה הזה ל-yes.

Gmaker test save.png צריך לוודא שהצל באמת הופך לרוח מפוחדת כשפקמן אוכל כדור כוח.




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

עכשיו תורכם:

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

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

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

עוד דבר אחד נשאר לנו לעשות בסעיף הזה שברשימת העבודה: מיד כשהרוח הופכת למפוחדת, להאט את המהירות שלה ולהפוך את כיוון התנועה שלה (כדי שבמקום לרדוף אחרי פקמן היא תברח ממנו). בשביל זה נוסיף לרוח המפוחדת ארוע יצירה Gmaker create.png. בארוע הזה נשים את פעולת התנועה המדוייקת Gmaker blue move button.png. בחלון אפשרויות הפעולה נכתוב את המהירות האיטית בשדה speed. בשדה direction נרצה להכניס את הכיוון ההפוך לכיוון הנוכחי. הכיוון הנוכחי הוא המשתנה direction, והכיוון ההפוך לו הוא פשוט direction+180, לכן זה מה שנכתוב שם.


Gmaker test save.png צריך לוודא שמיד כשפקמן אוכל כדור כוח, הרוח הופכת כיוון ונהיית איטית (ומפוחדת).




השלמנו עוד פריט ברשימת העבודה של כדורי הכוח. עכשיו הרשימה נראית ככה:

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

אז אפשר לעבור לפריט הבא: הבהוב.

הבהוב[עריכה]

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

  1. להקליק פעמיים על הדמות של הרוח המפוחדת, ברשימת המשאבים מצד שמאל, בתיקיית הדמויות Sprites.
  2. בחלון תכונות הדמות להקליק על הכפתור Edit Sprite.
  3. הגענו לחלון עריכת דמות. התפריט הימני ביותר בחלון הזה נקרא Animation (אַנִימֵיישֵן) - הנפשה. בתפריט הזה יש כל מיני אפשרויות ליצור הנפשות מתמונה. אנחנו נבחר באפשרות פשוטה יחסית: Fade to Color (פֵייד טוּ קוֹלוֹר) - לעמעם לצבע. האפשרות הזו יוצרת רצף תמונות שבהן התמונה מתעמעמת עד שהיא הופכת כולה לצבע אחד (שאפשר לבחור). כשבוחרים באפשרות הזו, מתבקשים לבחור כמה תמונות צריכות להיות ברצף העמעום. לנו יספיקו שתי תמונות, כי אנחנו רק צריכים לגרום לרוח להבהב. אחר כך מקבלים חלון שבו בוחרים לאיזה צבע לעמעם. לדעתי כדאי לבחור איזשהו כחול - נסו ותראו מה מוצא כן בעיניכם.



Gmaker test save.png איך הרוח המפוחדת מהבהבת?




הרוח המפוחדת לא אמורה להבהב מיד בהתחלה, אלא רק אחרי כמה זמן. לכן בארוע היצירה שלה נעצור את ההבהוב: נוסיף לארוע היצירה פעולת החלפת דמות Gmaker change sprite button.png. הדמות שנחליף אליה היא דמות הרוח המפוחדת, אבל מה שחשוב יותר זו מהירות ההנפשה: בשדה speed נכתוב 0, ואז הדמות תישאר כל הזמן על התמונה הראשונה (תמונה מספר 0).


Gmaker test save.png עכשיו הרוח המפוחדת לא אמורה להבהב.




אנחנו רוצים שהרוח תתחיל להבהב אחרי זמן מה. בשביל זה אפשר להשתמש בשעון:

  1. בארוע היצירה של הרוח המפוחדת, להוסיף פעולת כיוון שעון מעורר: Gmaker clock button.png. את השעון אפשר לכוון ל-200 צעדים, למשל.
  2. להוסיף ארוע צלצול שעון מעורר: Gmaker alarm.png.
  3. בארוע הזה, להוסיף את פעולת החלפת הדמות Gmaker change sprite button.png. הדמות צריכה להיות שוב דמות הרוח המפוחדת, אבל הפעם בשדה מהירות ההנפשה speed נכתוב מספר אחר, למשל 0.1 (כדי שההבהוב יהיה די איטי).

Gmaker test save.png עכשיו הרוח המפוחדת אמורה להבהב אחרי כמה שניות. נסו לשנות את הזמן שעובר עד ההבהוב ואת קצב ההבהוב עד שתגיעו לערכים שנראים לכם טובים.




הרוח יודעת להבהב. נסמן את זה ברשימת העבודה:

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

נמשיך לפריט הבא ברשימה.

חזרה למצב הרגיל[עריכה]

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

  1. בארוע השעון המעורר, נוסיף עוד פעולת כיוון שעון מעורר: Gmaker clock button.png. הפעם נכוון שעון אחר (למשל את שעון מספר 1, אם קודם השתמשנו בשעון מספר 0). נכוון את השעון הזה לצלצל עוד 100 צעדים, למשל.
  2. נוסיף ארוע צלצול שעון מעורר שני Gmaker alarm.png, הפעם לשעון השני שכיוונו.
  3. בארוע הזה, נמחק את אובייקט הרוח המפוחדת באמצעות פעולת המחיקה: Gmaker destroy button.png.

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

  1. נוסיף פעולת שינוי אובייקט: Gmaker change instance.png. הפעם נשנה חזרה לאובייקט הצל. וגם לא נרצה שיבוצעו הפעולות של ארועי המחיקה והיצירה של האובייקטים.
  2. נוסיף גם פעולת תנועה מדוייקת Gmaker blue move button.png, שבה נחזיר את המהירות למהירות הגדולה יותר של הרוח המקורית, ונהפוך את הכיוון (בשדה direction נכתוב -direction).

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




מה עכשיו? בוא נבדוק ברשימה:

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

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

ועכשיו - ניתן לפקמן לאכול את הצל המפוחד.

לאכול רוח מפוחדת[עריכה]

מבחינת פקמן, לאכול רוח מפוחדת זה כמעט כמו לאכול נקודה או כדור כוח.

עכשיו תורכם:

להוסיף ארוע התנגשות בין פקמן לצל המפוחד. בארוע הזה:
  1. להשמיע צליל: Gmaker sound button.png.
  2. להעלות את הניקוד: Gmaker set score.png.
  3. להחזיר את אובייקט הצל המפוחד (Other) לנקודת ההתחלה שלו: Gmaker jump start.png.
  4. למחוק את אובייקט הצל המפוחד: Gmaker destroy button.png.

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




השלמנו כמעט הכל:

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

עכשיו צריך ליצור רוחות מפוחדות גם לשאר הרוחות.

שכפול הרוחות המפוחדות[עריכה]

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

  1. לשכפל את אובייקט הצל המפוחד עוד פעמיים (או שלוש, אם הכנת עוד רוח).
  2. לכל אחת מהרוחות המפוחדות לתת שם שמתאים לאחת הרוחות הרגילות. למשל, scared_speedy.
  3. בארוע המחיקה של האובייקטים המשוכפלים, לשנות את פעולת שינוי האובייקט Gmaker change instance.png כדי שהרוח המפוחדת תהפוך חזרה לרוח הרגילה שמתאימה לה ולא לצל.

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

דבר אחרון: בארוע ההתנגשות של פקמן בכדור הכוח, צריך להפוך את כל הרוחות למפוחדות ולא רק את הצל. בשביל זה צריך להוסיף עוד פעולות שינוי אובייקט Gmaker change instance.png, ובהן להפוך את הרוחות האחרות לרוחות המפוחדות שלהן. לא לשכוח לשנות את השדה perform events ל-yes כדי שהפעולות בארוע היצירה של הרוח המפוחדת יתבצעו.


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




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

זהו. השלמנו את כל הפריטים ברשימת העבודה של כדורי הכוח. עכשיו אפשר לחזור לרשימת העבודה הכללית של המשחק:

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

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