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



הנפשה

עריכה

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

 

בצד ימין ייפתח חלון תכונות הדמות. שם צריך להקליק על הכפתור לעריכת הדמות - Edit Sprite.

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

 

כדאי לדעת:

להחלפה של תמונות בשביל ליצור תחושת תזוזה קוראים הנפשה או אנימציה, ובאנגלית: animation (אַנִימֵיישֵן). דמות מונפשת נראית יותר חיה - כאילו יש לה נפש.

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

החלפת דמות

עריכה

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

  1. הורידו את הדמויות של פקמן פונה לארבעת הכיוונים, מהקישורים הבאים (זה משתנה קצת בין דפדפני אינטרנט שונים; לחצו על כל קישור עם כפתור העכבר הימני, ובחרו "שמירה בשם", "שמירת קישור בשם" או "Save as"): ימינה שמאלה למעלה ולמטה.
  2. להקליק על הכפתור להוספת דמות בסרגל הכלים.  
  3. להקליק על הכפתור Load Sprite כדי לטעון דמות מקובץ.
  4. לבחור דמות מתאימה של פקמן, לסמן את Smooth Edges ואת Remove Background, ולהקיש אנטר.

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

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

  • לדמות של פקמן פונה ימינה, לשנות את השם ל-pacman_right.
  • לדמות של פקמן פונה שמאלה, לשנות את השם ל-pacman_left.
  • לדמות של פקמן פונה למעלה, לשנות את השם ל-pacman_up.
  • לדמות של פקמן פונה למטה, לשנות את השם ל-pacman_down.
  • לדמות של פקמן פונה אלינו ומחייך, לשנות את השם ל-pacman_stand.

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

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

 

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



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

כוונון ההנפשה

עריכה

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

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


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




 

עכשיו מהירות ההנפשה טובה, אבל כשלוחצים שוב ושוב על אותו חץ זה הורס את רצף ההנפשה וסוגר לפקמן את הפה. בשביל לתקן את זה נשנה את השדה subimage (סַבּ-אִימֵג') - תת-תמונה.

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

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


למרבה המזל, יש מספר מיוחד שמסמן ל-Game Maker להתחיל את ההנפשה בתמונה הבאה ברצף. המספר הזה הוא -1 (מספר שממילא לא מסמן אף תת-תמונה אמיתית). לכן צריך לכתוב -1 בשדה subimage.



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




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

 

עכשיו תורכם:

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


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

עריכה

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

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

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

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

  • פקמן
  • קירות המבוך
  • נקודות שפקמן אוכל
  • פירות
  • רוחות
  • כדורי כוח

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