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

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


Gmaker pong.png

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

לפני שמתחילים: הורדה והתקנה[עריכה]

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

Gmaker icon.png

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

בכניסה הראשונה ל-Game Maker, הוא שואל אם להתאים את עצמו למשתמשים מתקדמים. אנחנו רק מתחילים כרגע, אז עדיף להגיד לו לא: ללחוץ על הכפתור שכתוב עליו No (נוֹוּ).

זהו, עכשיו אפשר להתחיל ליצור משחק!

כדאי לדעת:

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

מסלול ההתקדמות[עריכה]

"גם מסע של אלף מילים מתחיל בצעד אחד". (טאו טה צ'ינג)

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג

צעד 1: המסך

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג

הכרות עם Game Maker[עריכה]

כשמפעילים את Game Maker זה מה שאמורים לראות:

Gmaker blank slate.png

בצד ימין יש שטח גדול וריק, שבו נשתמש בשביל לעבוד על המשחק.
בצד שמאל יש רשימה של דברים שנשתמש בהם במשחק שלנו, מה שנקרא באנגלית resources (רִיסוֹרְסֶז) ובעברית "משאבים". כרגע עוד לא יצרנו שום דבר להשתמש בו, אז אין שם כלום מלבד כותרות לסוגים של משאבים.
למעלה יש סרגל כלים עם כל מיני פעולות שאפשר לעשות. הפעולה הכי חשובה היא שמירת המשחק, כי אם לא נזכור לשמור את המשחק כל העבודה שנעשתה עלולה ללכת לאיבוד. אז נתחיל בזה:

שמירת משחק[עריכה]

Gmaker save.png

לוחצים על הכפתור בצורת דיסקט (שלישי משמאל בסרגל הכלים) ומקלידים שם למשחק שאנחנו יוצרים. איזה שם? עדיף שם שיתאר את המשחק, כדי שלא נתבלבל כשיהיו לנו עשרות משחקים וכבר לא נזכור במה התחלנו. המשחק הראשון שלנו הוא מין פינג-פונג, אז קוראים לו "פונג", או באנגלית pong. אחרי שמקלידים את שם המשחק, בוחרים איפה לשמור אותו (זו בחירה שלך) ומקישים אֵנְטֵר או לוחצים על Save.

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

דבר ראשון: ליצור משהו שעובד[עריכה]

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

אז איך אפשר להציג משהו ב-Game Maker? בשביל זה צריך ליצור מקום שבו דברים יכולים להיות מוצגים. למקום כזה קוראים room (רוּם) - חדר. חדר יכול להכיל את כל המשחק שלך, או להיות חדר ממש במשחק שבו עוברים מחדר אחד לשני, או להכיל רמה במשחק שבו מתקדמים ברמות.

Gmaker add room.png

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

אחרי שיוצרים את החדר, אפשר לראות אותו בצד שמאל של החלון, ברשימת המשאבים, בתיקיה שנקראת Rooms (רוּמְז) - חדרים. בצד ימין נפתח לנו חלון שמאפשר לקבוע מה יהיה בחדר בדיוק, אבל כרגע אנחנו עוד לא רוצים שיהיה בו כלום אז אפשר לסגור את החלון הזה או סתם להתעלם ממנו.

Gmaker run.png

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


Gmaker null game.png

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

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

Gmaker save.png

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


עכשיו אפשר להתחיל לשים דברים במשחק: צעד 2: המחבט

צעד 2: המחבט

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג

אובייקטים[עריכה]

עכשיו יש לנו משחק עובד, אבל הוא די משעמם: הוא לא עושה כלום. בשביל שהוא יעשה משהו, צריך שיהיו בו דברים שעושים משהו - זזים, מתנגשים, מתפוצצים, וכן הלאה. לדבר שעושה משהו קוראים אוֹבְּיֵיקְט (עצם, חפץ) או באנגלית: object (אוֹבְּגֵ'קְט).

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

בשביל ליצור אובייקט צריך להקליק על הכפתור בצורת כדור כחול.Gmaker add object.png

Gmaker first object.png

אחרי שלוחצים, אפשר לראות את האובייקט ברשימת המשאבים שבצד שמאל, בתיקיית האובייקטים.

השם ש-Game Makerנתן לאובייקט החדש הוא object0. מבחינתו הרי לא משנה איך נקרא לאובייקטים שלנו - הוא לא מבין אנגלית וגם לא עברית. אבל לנו עדיף לקרוא לאובייקטים שלנו בשמות שבאמת מתאימים להם, כדי שיהיה קל לנו להסתדר גם כשיהיו לנו הרבה אובייקטים. וזה עוד יותר חשוב כשמתחילים לכתוב פקודות בשפת תכנות, אבל לזה נגיע בהמשך. בשביל לשנות את השם של האובייקט צריך לבחור את האובייקט בהקלקה, ואז להקליק על השם ולכתוב במקומו שם חדש. כדאי לקרוא לו פשוט "מחבט" באנגלית: bat (בַּט). (לא לשכוח ללחוץ אנטר אחרי שהקלדת את השם החדש!)


כדאי לדעת:

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


דמות[עריכה]

מימין לרשימת המשאבים, נפתח לנו חלון עם הכותרת Object Properties (אוֹבְּגֵ'קְט פְּרוֹפֵּרְטִיז) - תכונות האובייקט.

Gmaker sprite area.png

התכונה הראשונה שנגדיר תהיה איך האובייקט נראה או "הדמות" שלו, ובאנגלית: sprite (סְפְּרַייט). את הדמות של האובייקט קובעים בשדה שמצד שמאל. מאחר שעוד אין לנו דמויות בין המשאבים במשחק, ניצור דמות חדשה ע"י הקלקה על New (נְיוּ) - חדש.

עכשיו נפתח עוד חלון שמאפשר לנו להגדיר דמות. הפעם לא נצייר בעצמנו דמות, אלא נפתח דמות שמישהו אחר כבר צייר. בשביל זה צריך להקליק על הכפתור Load Sprite (לוֹוּד סְפְּרַייט - טעינת דמוּת). ואז Game Maker מביא אותנו לתיקיה שבה יש כמה תיקיות עם דמויות מוכנות. יש דמויות שיתאימו לנו בתיקיה breakout, אז נכנס לשם. אפשר פשוט לעבור על התמונות שם ולראות מה נראה נחמד, אבל לדעתי כדאי לבחור ב-bat1 או bat2. אחרי שבחרת תמונה (ולחצת אנטר או Open), הדמות תוצג בחלון הגדרת הדמות. נאשר בלחיצה על OK (הכפתור עם סימן וִי ירוק) - והנה יש לנו דמות למחבט שלנו!

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

הצבת האובייקט על המסך[עריכה]

Gmaker room0.png

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

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

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

להקליק על כפתור ההפעלה שבצורת משולש ירוק.Gmaker run.png

אם הכל הצליח, אמורים לראות חלון עם המחבט. הצלחת?

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


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

צעד 3: ארועים ופעולות

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג


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

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

  1. לדעת מתי המשתמש לוחץ על חץ.
  2. כשזה קורה, להזיז את המחבט.

Game Makerיודע לשים לב מה עושה המשתמש בכל רגע, והוא שולח על כך הודעות לכל האובייקטים: "שימו לב! המשתמש לחץ על חץ!" או "תראו, המשתמש הקליק בעכבר!". (הוא שם לב גם לדברים שהאובייקטים במשחק עושים ולא המשתמש - נכיר אותם בהמשך.) כל דבר כזה שקורה במשחק נקרא event (אֵוֵונְט) - ארוע. יש המון סוגים של ארועים, ורוב האובייקטים מתעלמים מרוב הארועים.

Gmaker bat object.png

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

אז נפתח לנו מצד ימין חלון תכונות האובייקט. בחלק האמצעי שלו יש רשימה של Events (אֵוֵונְטס) - ארועים שהאובייקט מגיב עליהם. כרגע הרשימה ריקה, כי עוד לא אמרנו לאובייקט לאיזה אירועים הוא צריך להגיב. בשביל להוסיף אירוע לרשימה, צריך להקליק על הכפתור שמתחתיה Add event (אַד אֵוֵונְט) - הוסף ארוע.

Gmaker event area.png

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

Gmaker key.png ארוע מקש (Keyboard) מסמן שהמשתמש לוחץ על מקש. האירוע הזה קורה מרגע שהמשתמש התחיל ללחוץ על המקש, וחוזר שוב ושוב כל עוד המשתמש ממשיך ללחוץ.

Gmaker key down.png ארוע לחיצה (Key Press) מסמן שהמשתמש התחיל ללחוץ על מקש. האירוע הזה קורה רק כשהמשתמש מתחיל ללחוץ על המקש, אבל לא קורה שוב עד שהמשתמש לא משחרר את המקש ולוחץ שוב.

Gmaker key up.png ארוע שחרור מקש (Key Release) קורה כשהמשתמש משחרר את המקש שהוא לחץ עליו קודם.

Gmaker left key event.png

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

עכשיו האירוע של לחיצה על חץ שמאלה מופיע ברשימת האירועים של אובייקט המחבט.

פעולות[עריכה]

מימין לרשימת האירועים יש רשימה נוספת: Actions (אַקְשֵנְז) - פעולות. זו רשימת הפעולות שצריך לעשות כשהאירוע קורה. מימין לרשימת הפעולות יש כל מיני כפתורים - כל כפתור כזה מייצג פעולה, ואפשר לגרור אותו עם העכבר לרשימת הפעולות.


כדאי לדעת:

למי שיודע קצת אנגלית: אפשר להצביע עם העכבר על כפתור של פעולה (בלי להקליק) ואחרי רגע יצוץ תיאור של הפעולה.
Gmaker red move button.png

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

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

Gmaker red move dialog.png

לוחצים על הכפתור עם חץ שמאלה כדי שהמחבט יזוז שמאלה, וכותבים 5 בשדה Speed (סְפִּיד) - מהירות.

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

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

ניסית? מה קרה? מה זה אומר?

Gmaker save.png

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

ארועים נוספים[עריכה]

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


עכשיו תורכם:

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

בשביל שהמחבט יעצור כשמפסיקים ללחוץ על החץ, צריך קודם כל להוסיף לרשימת האירועים שלו אירוע חדש באמצעות הקלקה על הכפתור Add event שמתחת רשימת האירועים, בדיוק כמו שעשינו קודם כשהוספנו את האירוע של לחיצה על החץ. אבל הפעם צריך לבחור באירוע של שחרור מקש. Gmaker key up.png

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

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

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


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




עכשיו תורכם:

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

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




עריכת פעולות[עריכה]

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


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




מצאת מהירות טובה? אז אפשר להמשיך הלאה - צעד 4: הגבול

צעד 4: הגבול

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג


אובייקט יציב[עריכה]

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

ניצור אובייקט חדש בהקלקה על הכדור הכחול בסרגל הכלים. Gmaker add object.png

חלון תכונות האובייקט נפתח לנו בצד ימין. דבר ראשון, ניתן לאובייקט שם שיתאר אותו. בפעם הקודמת שינינו את שם האובייקט ברשימת המשאבים, אבל הפעם נשנה אותו בחלון תכונות האובייקט: השדה שבפינה השמאלית למעלה מציין את שם האובייקט - Name (נֵיים). כרגע כתוב שם object1. את זה צריך להחליף בשם יותר משמעותי: border (בּוֹרְדֵר) - גבול. האובייקט הזה יסמן את גבול אזור המשחק וימנע מהמחבט לצאת ממנו.

מתחת לשם האובייקט יש שתי תיבות סימון, שליד הימנית מביניהן כתובה המילה Solid (סוֹלִיד) - יציב, נייח. בדרך כלל כשאומרים solid מתכוונים למשהו מוצק, אבל ב-Game Makerהכוונה היא לאובייקט יציב, שלא זז. אובייקט הגבול שלנו בהחלט צריך להיות יציב, ולכן צריך לסמן את תיבת הסימון הזאת. Gmaker solid.png

כדאי לדעת:

למה חשוב להגדיר שאובייקט הוא יציב? זה משנה כשאובייקטים אחרים מתנגשים באובייקט הזה - אם הוא יציב אז הם לא יכולים להזיז אותו.

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

ציור דמות[עריכה]

בשביל לצייר את הדמות צריך להקליק על הכפתור האמצעי בחלון תכונות הדמות: Edit Sprite (אדיט סְפְּרַייט) - ערוך דמות.

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

כדאי לדעת:

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

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


כדאי לדעת:

פיקסל הוא יחידת התצוגה הקטנה ביותר על מסך המחשב: ריבוע קטן של צבע. התמונות והצורות שאנחנו רואים על המסך בנויות מרשת גדולה של פיקסלים בצבעים שונים. המילה פיקסל באה מצירוף המלים Picture Element (פִּיקְצֵ'ר אֵלֵמֵנְט) - יחידת תמונה.

בשביל לשנות את גודל התמונה צריך ללכת לתפריט Transform (טְרַנְסְפוֹרם) - לשנות. שם צריך לבחור בפקודה השלישית מלמטה: Resize Canvas (רִיסַייז קַנְוַוס) - שינוי גודל הבד (כמו בד שציירים מציירים עליו). בחלון האפשרויות שיפתח צריך לכתוב 16 במקום 32 ולאשר בלחיצה על אנטר.

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

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

שקיפות[עריכה]

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

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

Gmaker transparent.png

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

עכשיו אפשר להקליק על OK.

התנגשות[עריכה]

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

אז בואו נוסיף למחבט שלנו טיפול בארוע התנגשות עם הגבול:

  1. לעשות הקלקה-כפולה על אובייקט המחבט ברשימת המשאבים שמשמאל, ואז נקבל מימין את חלון תכונות האובייקט של המחבט.
  2. להקליק על Add event.
  3. מבין סוגי הארועים, לבחור בארוע ההתנגשות Collision: Gmaker collision.png.
  4. עכשיו צץ תפריט שמאפשר לבחור על איזו התנגשות מדובר. לבחור בהתנגשות עם אובייקט גבול, כמובן.

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

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

Gmaker room border object.png

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

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

מופע[עריכה]

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

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

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


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




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

צעד 5: הכדור

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג


כדור[עריכה]

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

  1. ליצור אובייקט חדש Gmaker add object.png
  2. לתת לו שם משמעותי, למשל ball (בּוֹל) - כדור.
  3. ליצור לו דמות מתאימה - אפשר לצייר לבד ואפשר לטעון דמות מוכנה (יש כדורים מתאימים בין הדמויות בתיקיה breakout שבה מצאנו את דמות המחבט). דמות הכדור עגולה ולא מלבנית, אז צריך להשאיר את הסימון בתיבת הסימון Transparentשמסמנת שיש בתמונה חלקים שקופים.
  4. להוסיף את אובייקט הכדור לחדר, איפשהו באמצע.
  5. להפעיל את המשחק כדי לבדוק שהכדור מופיע כמצופה.
  6. לשמור את המשחק.

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

ארוע יצירה[עריכה]

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

  1. להקליק על הכפתור להוספת ארוע שבחלון תכונות האובייקט של הכדור.
  2. לבחור את ארוע היצירה Create. Gmaker create.png
  3. להוסיף פעולת תנועה Gmaker red move button.png. כדאי שמהירות התנועה תהיה קטנה ממהירות התנועה של המחבט, כדי שהמשתמש יצליח לחבוט בכדור (למשל, מהירות 3 או 5). ובאיזה כיוון תהיה התנועה? אפשר ללחוץ על יותר מחץ אחד, ואז הכדור יבחר אחד מהכיוונים האלה באופן אקראי. ככה בכל פעם שנשחק הכדור יזוז בכיוון אחר ובלתי צפוי. כדאי לבחור את ארבעת החצים האלכסוניים - תנועה ישר היא משעממת יחסית.



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



אם הכדור באמת זז, אז הוא בורח החוצה מהמסך! צריך לעצור אותו, ולהחזיר אותו חזרה.

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

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

אז עכשיו צריך לעשות שני דברים:

  1. להקיף את החדר במופעים של אובייקט הגבול (מלבד בצד התחתון) כמו בתמונה למטה.
  2. לטפל בארוע ההתנגשות של הכדור בגבול.

Gmaker room with border.png

הפעם אנחנו לא רוצים שהכדור סתם יעצור כשהוא מתנגש בגבול, אלא שינתר ממנו חזרה וימשיך לנוע. למרבה המזל, אנחנו לא צריכים להגיד מראש באיזה כיוון ומהירות לנתר חזרה, כי ל-Game Makerיש פעולה מיוחדת לניתור מאובייקטים שמתנגשים בהם: Bounce (בּאוּנְס) - ניתור. Gmaker bounce button.png

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


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



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

Gmaker bounce dialog.png

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

against (אַגֵיינְסְט) - כנגד, האם האובייקט צריך לנתר רק כנגד אובייקטים שהגדרנו אותם יציבים או כנגד כל אובייקט. המחבט שלנו הוא לא יציב, לכן צריך לשנות את הערך של השדה הזה ל-all objects (אוֹל אוֹבְּגֵ'קְטְס) - כל האובייקטים.


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



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

פעולת תנועה מדוייקת[עריכה]

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

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

  1. לבחור את ארוע היצירה של הכדור.
  2. למחוק מרשימת הפעולות שלו את פעולת התנועה עם החצים האדומים (פשוט לבחור אותה וללחוץ על מקש Delete).
  3. במקומה, לגרור לרשימת הפעולות את פעולת התנועה המדוייקת עם החצים הכחולים.
  4. בחלון אפשרויות הפעולה, לכתוב את המהירות כרגיל בשדה המהירות speed.
  5. Gmaker angles.png
    מעל שדה המהירות, יש שדה direction (דַיירֵקְשֵן) - כיוון. שם אפשר להגדיר את הכיוון באמצעות מספר שמציין את הזווית במעלות ביחס לתנועה לצד ימין. כלומר, תנועה ימינה תהיה כיוון 0, תנועה למעלה תהיה כיוון 90, בשביל תנועה שמאלה צריך לכתוב בשדה הכיוון 180, ובשביל תנועה למטה - 270 (או -90). מספרים אחרים יגדירו כיווני ביניים בין הכיוונים האלה. כדאי לנסות לכתוב כאן מספרים שונים ולראות מה יוצא. (למשל: 270, או 300, או 200, או מספרים אחרים.)

Gmaker test save.png הכדור ייפול בזווית שכתבת בשדה direction.




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

Gmaker blue move dialog.png

random[עריכה]

מה זה? למה סוגריים? אפשר לכתוב מלים במקום מספרים?
אפשר לכתוב מלים מסויימות ש-Game Makerמבין, במקום מספרים. אם נכתוב מלים שהוא לא מכיר אז תהיה שגיאה כשננסה להפעיל את המשחק (נסו ותראו!).

מה זה אומר ש-Game Maker מבין מלה?
זה אומר שמוגדר לו איך לקחת את המלה הזו ולהפוך אותה למספר. כשיהיה לו מספר במקום המלה, הוא יוכל לעבוד איתו (למשל לקבוע את הכיוון המתאים לתנועת הכדור).

איך הופכים מלה למספר?
יש מלים ש-Game Makerיודע להפוך מיד למספר. הן נקראות "משתנים" ונדבר עליהם יותר בהמשך. יש מלים אחרות, כמו random, שעוזרות להפוך מספר אחד (או יותר) למספר אחר. מלים כאלה נקראת פוּנקציות. הפונקציה random לוקחת את המספר בסוגריים (שנקרא פַּרַמֵטֵר) ובמקומו מחזירה מספר אקראי שקטן ממנו. ככה ש-random(360) תחזיר מספר אקראי כלשהו בין 0 לבין 360. יש עוד הרבה פונקציות ב-Game Maker, ובתכנות מתקדם יותר משתמשים בהן המון.


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




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

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

Gmaker down angle.png

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

הפונקציה random נותנת לנו מספר בין 0 לבין הפרמטר (המספר ששמים אחריה בסוגריים). אבל אנחנו צריכים מספר יותר גדול - מספר בין 225 ל-315. מה עושים? אם נכתוב 20+random(10) אז נקבל 20 ועוד המספר שהפונקציה random תחזיר, שהוא יהיה בין 0 ל-10. כלומר: נקבל מספר בין 20 לבין 30. בואו נשנה קצת את המספרים ככה שבמקום מספר בין 10 ל-20 נקבל מספר בין 225 ל-315. קודם כל, ברור שלמספר האקראי שתחזיר לנו הפונקציה random צריך להוסיף 225, כי הפונקציה יכולה להחזיר לפעמים 0. אז אנחנו צריכים 225+random(?). איזה מספר צריך לבוא במקום הסימן שאלה? מספר מספיק גדול כדי שנוכל להגיע עד 315. מאיפה אנחנו צריכים להגיע ל-315? מ-225. זאת אומרת, אנחנו מחפשים את המספר שמוסיפים ל-225 בשביל להגיע ל-315. המספר הזה הוא ההפרש ביניהם: 90 = 225 - 315 .

לכן נשנה את הכיוון של הפעולה ל-225+random(90).

הערה: בגירסאות החדשות בלנדר יודע לקבל ביטויים כמו random(225-315)

התרגיל שכתבנו בשדה הכיוון נקרא ביטוי. Game Makerיודע לחשב ביטויים כאלה ולהשתמש בתוצאה. בכל מקום שהוא רוצה שנכתוב מספר, הוא יסכים גם שנכתוב ביטוי והוא כבר יחשב את התוצאה של הביטוי וישתמש בה. ככה אפשר לכתוב למשל בשדה המהירות 10/3 או כל ביטוי אחר, במקום מספר.


Gmaker test save.png עכשיו צריך לראות שזה באמת עובד.




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

צעד 6: נפילה

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג


פעולות על פעולות[עריכה]

כשאובייקט יוצא מהמסך, Game Maker מודיע לו על הארוע הזה. אז נוסיף את הארוע הזה לאובייקט הכדור:

  1. ללחוץ על הוספת ארוע.
  2. לבחור בסוג ארוע Other (אַזֵר) - אחר Gmaker other.png.
  3. בתפריט שצץ לבחור Outside Room (אַוּוטְסַייד רוּם) - מחוץ לחדר.

Gmaker outside room.png

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


Gmaker test save.png וכרגיל, צריך לבדוק.



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

  1. Gmaker create.png להקליק על ארוע היצירה ברשימת הארועים של אובייקט הכדור.
  2. Gmaker blue move button.png ברשימת הפעולות של הארוע מופיעה פעולת התנועה המדוייקת (חצים כחולים). לבחור אותה באמצעות הקלקה, ולהעתיק אותה בהקשה על Ctrl+C.
  3. Gmaker other.png ברשימת הארועים, להקליק על ארוע היציאה מהחדר כדי לחזור אליו.
  4. להקליק על רשימת הפעולות, ואז להדביק כאן את הפעולה שהעתקנו באמצעות הקשה על Ctrl+V.

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




צלילים[עריכה]

בואו נוסיף צליל נפילה כשהכדור נופל למטה. בשביל זה קודם צריך להוסיף למשחק משאב מתאים, משאב מסוג Sound (סַאוּנְד) - צליל:

  1. להקליק על הכפתור להוספת צליל בסרגל הכלים. Gmaker sound button.png
  2. לתת לצליל שם משמעותי, למשל fall_sound (פוֹל סַאוּנְד) - צליל נפילה.
  3. להקליק על הכפתור Load Sound (לוֹוּד סַאוּנְד) - טען צליל.
  4. לבחור קובץ צליל כלשהו. אפשר לבחור צלילים מהתיקיה עם הדוגמאות שמגיעות עם Game Maker, ואפשר גם צלילים אחרים שיש לכם במחשב.
  5. לשמוע את הצליל שבחרתם באמצעות הקלקה על המשולש הירוק. אם הוא לא מתאים - אפשר לטעון צליל אחר עד שמוצאים משהו מספיק טוב.
  6. להקליק OK לאישור.


כדאי לדעת:

גם משאב מסוג דמות אפשר להוסיף עוד לפני שיש לדמות אובייקט שמשתמש בה. בשביל להוסיף דמות צריך להקליק על כפתור הפק-מן האדום בסרגל הכלים. Gmaker add sprite.png
Gmaker main1 tab.png

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

מהלשונית הזו אפשר לקחת את הכפתור לפעולה של השמעת צליל Gmaker sound button.png ולגרור אותו לרשימת הפעולות. בחלון אפשרויות הפעולה, צריך לשנות את השדה sound (צליל) לצליל שלנו, וללחוץ אישור.

Gmaker sound dialog.png


Gmaker test save.png שומעים?




עכשיו תורכם:

להוסיף צלילים גם להתנגשות של הכדור במחבט ובגבול.

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

השהיה[עריכה]

בשביל לגרום למשחק לעצור לכמה זמן, משתמשים בפעולת השהיה: Gmaker sleep.png. את פעולת ההשהיה אפשר למצוא בלשונית השלישית "main2".

השדה הראשון בחלון אפשרויות הפעולה הוא milliseconds (מִילִיסֵקֵנְדְס) - אלפיות שניה. בואו ננסה לראות אם תתאים לנו השהיה של 1000 אלפיות שניה (כלומר: שניה אחת בדיוק). אז אפשר להשאיר את הערך בשדה על 1000, ולהקליק על אישור.


Gmaker test save.png איך זה עובד?



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

סדר הפעולות[עריכה]

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

Gmaker fall action order.png

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


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




עכשיו תורכם:

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

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

צעד 7: חיים וניקוד

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג


חיים[עריכה]

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

בשביל לאבד חיים, צריך קודם כל שיהיו חיים שאפשר לאבד אותם... נקבע שבתחילת המשחק המשתמש מקבל 3 חיים. בשביל זה נרצה לטפל בארוע של תחילת המשחק (במאפייני הכדור), Game start (גֵיים סְטַרְט), שנמצא בסוג ארוע Other Gmaker other.png.

Gmaker game start.png

הפעולה שצריך לעשות בארוע הזה היא קביעת מספר החיים, שנמצאת בלשונית score (סְקוֹר) - ניקוד. Gmaker lives.png

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


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



בשביל לאבד חיים כשהכדור נופל, נלך לארוע היציאה של הכדור מהחדר Gmaker other.png, ונוסיף גם לו את הפעולה של קביעת מספר החיים. הפעם אנחנו לא רוצים לתת 3 חיים, אלא להוריד חיים. אז איזה מספר נכתוב? אם נכתוב 2, מספר החיים יהיה 2 אחרי כל נפילה, לא רק אחרי הנפילה הראשונה, וככה אף פעם לא יגמרו החיים. אנחנו רוצים שמספר החיים יהיה 1 פחות ממה שהוא באותו רגע. איך עושים את זה?

ערך יחסי[עריכה]

Gmaker relative.png

בחלון אפשרויות הפעולה יש תיבת סימון Relative (רֵלַטִיב) - יחסי.

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

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


Gmaker test save.png עדיין לא רואים שום דבר מעניין. למה? כי החיים פשוט יורדים להם בשקט מ-3 ל-2, מ-2 ל-1, מ-1 ל-0, מ-0 ל--1, וכן הלאה. לא תכנתנו את המשחק לעשות שום דבר כשיש 0 חיים.




סוף החיים[עריכה]

Gmaker no lives.png

כשיש 0 חיים, Game Maker מודיע לנו על הארוע הזה. הארוע נקרא No more lives (נוֹ מוֹר לַייוְוז - אין עוד חיים) ונמצא גם הוא בסוג ארוע Other Gmaker other.png.

הפעולה שצריך לעשות בארוע הזה היא לסיים את המשחק: Gmaker end game.png. היא נמצאת בלשונית main2.


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



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

הצגת מספר החיים[עריכה]

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

לפעולה הזו יש הרבה אפשרויות, אז נעבור עליהן אחת-אחת:

  • show score (שוֹוּ סְקוֹר) - הצג הניקוד. עוד אין לנו ניקוד, אז נשנה את האפשרות הזו ל-don't show (דוֹנְט שוֹוּ) - אל תציג.
  • score caption (סְקוֹר קַפְּשֵן) - כותרת הניקוד (המלים שיוצגו ליד הניקוד).
  • show lives (שוֹוּ לַייוְוז) - הצג חיים. זה בדיוק מה שאנחנו רוצים לעשות, אז נשנה את האפשרות הזו ל-show - הצג.
  • lives caption (לַייוְוז קַפְּשֵן) - כותרת החיים (המלים שיוצגו ליד מספר החיים). אפשר להשאיר את הכותרת באנגלית, ואפשר לכתוב במקומה "חיים: " או "כדורים: ". שימו לב שצריך להיות רווח בסוף הכותרת שכותבים, אחרת מספר החיים יהיה צמוד לכותרת!
  • show health (שוֹוּ הֵלְתְ') - הצג בריאות. לא נתעסק בזה עכשיו.
  • health caption (הֵלְתְ' קַפְּשֵן) - כותרת הבריאות.

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




ניקוד[עריכה]

ראינו ש-Game Maker יכול להראות לנו גם את הניקוד לצד החיים. בואו ננצל את זה!

עכשיו תורכם:

# Gmaker set caption.png לשנות את פעולת קביעת כותרת החלון כך שתציג גם ניקוד.
  1. Gmaker set score.png בתחילת המשחק, לקבוע את הניקוד ל-0 באמצעות הפעולה לקביעת ניקוד.
  2. Gmaker set score.png להגדיל את הניקוד בכל פעם שהשחקן מצליח לפגוע בכדור עם המחבט. (רמז: זוכרים את Relative?)

Gmaker test save.png עכשיו המשתמשים יכולים לדעת כמה הם טובים במשחק!




רשימת האלופים[עריכה]

Game Makerיודע לזכור מי זכה בניקוד הכי גבוה ולהציג טבלה עם עשרת הטובים ביותר. את הטבלה הזאת נציג למשתמש בסוף המשחק - בארוע No more lives (אין עוד חיים) Gmaker other.png. אפשר למצוא את הפעולה להצגת הטבלה בלשונית score. Gmaker highscore.png לא לשכוח לדאוג שפעולת הצגת הטבלה תתבצע לפני הפעולה לסגירת המשחק!


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




עכשיו תורכם:

להשמיע לשחקן צליל שמבשר על סיום המשחק לפני הצגת הטבלה.

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


Gmaker test save.png עכשיו אפשר לשחק שוב ושוב ושוב ושוב...




בואו נעשה את המשחק יותר מאתגר: צעד 8: מהירות.

צעד 8: מהירות

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג

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

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

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

עד עכשיו קבענו ערכים למשתנים באמצעות פעולות מיוחדות כמו הפעולה לקביעת הניקוד, או הפעולה לקביעת הכיוון והמהירות. אבל יש גם פעולה כללית שמאפשרת לנו לשנות כל משתנה שנרצה: Gmaker set var.png קביעת ערך של משתנה. VAR זה קיצור של המלה variable (וַוארְיַאבֵּל) - משתנה. הפעולה לקביעת ערך של משתנה נמצאת בלשונית control (קוֹנְטְרוֹל) - בקרה.

המשתנה שאנחנו רוצים לשנות הוא מהירות הכדור, והשם שלו הוא speed.

כדאי לדעת:

שמות של משתנים יכולים לכלול רק אותיות באנגלית, ספרות, ואת הסימן קו תחתי: _. התו הראשון בשם המשתנה לא יכול להיות ספרה.
Gmaker set var dialog.png

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

  • variable - שם המשתנה. במקרה שלנו זה speed.
  • value - הערך שרוצים לתת למשתנה. אנחנו רוצים להגדיל את המשתנה, לכן נכתוב כאן 1 או 2 ונסמן את תיבת הסימון Relative, כדי שהמספר הזה יתווסף למהירות הנוכחית.



Gmaker test save.png נסו לשחק עכשיו. יותר קשה? מספיק קשה? יותר מדי קשה? נסו לשנות את המספר שמוסיפים למהירות הכדור בכל חבטה עד שרמת האתגר שהמשחק מציב תהיה לא גבוהה מדי ולא נמוכה מדי. המספר לא חייב להיות שלם - אפשר לכתוב גם 0.3 או 2.5 וכו'.



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

  1. Gmaker other.png נלך לארוע היציאה של הכדור מהמסך.
  2. Gmaker blue move button.png נעשה הקלקה כפולה על פעולת התנועה.
  3. מכיוון שאנחנו לא רוצים שמי שישחק במשחק יתחיל במהירות שבה הוא נפסל (כי כנראה שהוא ייפסל שוב כמעט מיד אחרי שהוא נפסל קודם לכן), נמחק את המספר שכתוב בשדה speed, ובמקומו נכתוב את הביטוי

speed-(speed/4). מה זה אומר? כתבנו לGame Maker שכשהכדור יחזור מחדש המהירות שלו תהיה המהירות שהייתה לו לפני הנפילה, פחות רבע מהמהירות הזאת. כך שיוצא שהמהירות החדשה היא שלושה רבעים מהמהירות הישנה. מצד אחד המשחק לא יהיה מהיר מדי בפתיחה, ומצד שני לא יהיה איטי מדי.


כדאי לדעת:

כמו ש-Game Maker ידע להבין שכשכותבים לו פונקציה כמו (random(360 הוא צריך להפוך את זה למספר שהפונקציה מחזירה, ככה הוא גם יודע שכשכותבים לו שם של משתנה הוא צריך להציב במקומו את הערך של המשתנה. אפשר גם לכתוב ביטויים עם שמות משתנים, כמו למשל speed-1 או speed/2, וככה לכוונן טוב יותר את רמת האתגר של המשחק.

Gmaker test save.png יותר טוב, לא?



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

משתנים חדשים[עריכה]

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

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

  1. נלך לחלון תכונות האובייקט של המחבט באמצעות הקלקה כפולה על אובייקט המחבט ברשימת המשאבים שמשמאל. למה למחבט ולא לכדור? כי זה משתנה של המחבט - אנחנו משתמשים בו בשביל לקבוע את מהירות המחבט, לא את מהירות הכדור.
  2. נוסיף למחבט ארוע יצירה, כי אנחנו רוצים לקבוע את המהירות שבה המחבט יוכל לנוע מיד כשהוא נוצר - לפני שהמשתמש מספיק ללחוץ על החצים. Gmaker create.png
  3. נגרור לרשימת הפעולות של הארוע את הפעולה לקביעת ערך של משתנה. Gmaker set var.png
  4. בשדה variable נכתוב שם משמעותי למשתנה, למשל move_speed (מוּוְ סְפִּיד) - מהירות תנועה.
  5. בשדה value נכתוב את המהירות שבה המחבט יזוז כשהמשתמש ילחץ על חץ. (אצלי זה 10, אבל אולי אתם מעדיפים מהירות אחרת.)
  6. נאשר בהקלקה על OK.

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


עכשיו תורכם:

שנו את ארועי הלחיצה על מקשי החצים כדי שיגרמו למחבט לנוע במהירות move_speed במקום במהירות 10.

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




כדאי לדעת:

בפיתוח תוכנה הרבה פעמים עושים שינויים כאלה, שלא משפיעים על הפעולה הנראית של התוכנה אלא רק על מה שקורה מאחורי הקלעים. שינויים כאלה נועדו לאפשר הוספת יכולות חדשות לתוכנה (כמו השינוי שעשינו כאן), החלפת חלקים איטיים ברכיבים מהירים יותר, או פשוט סידור נוח יותר להבנה ולתכנות של תוכנה גדולה ומסובכת. באנגלית, שינוי מסוג כזה נקרא refactoring (רִיפַקְטוֹרִינְג) - סידור מחדש.

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

  1. להוסיף למחבט טיפול בארוע התנגשות עם הכדור. Gmaker collision.png
  2. לרשימת הפעולות של הארוע הזה להוסיף פעולה של קביעת ערך משתנה. Gmaker set var.png
  3. באפשרויות הפעולה, להגדיל את המשתנה move_speed (בעזרת Relative).

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



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

תוכנית מחשב עצמאית[עריכה]

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

  1. ללכת לתפריט File (פַייל) - קובץ.
  2. לבחור Create Executable (קְרִיאֵייט אֵקְסֵקְיוּטַבְּל) - הכן תוכנית.
  3. לבחור איפה לשמור את התוכנית שלכם.

זהו! עכשיו אפשר להפעיל את התוכנית שיצרתם בשביל לשחק במשחק שלכם. את התוכנית הזו תוכלו לשלוח לאחרים ואז גם הם יוכלו לשחק.


כדאי לדעת:

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

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

  • WinZip
  • WinRar
  • WinAce

השלמת את המשחק הראשון! עכשיו לעצור ולראות לאן הגענו - צעד 9: סוף המסלול.

צעד 9: סוף המסלול

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג


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

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

יסודות Game Maker:

גרפיקה:

מושגים בתכנות:

עקרונות בפיתוח תוכנה:

ארועים:

פעולות:

פונקציות:

משתנים:


תרגילים[עריכה]

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

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

בשביל להשתמש בתמונות שמופיעות כאן (או באתרים אחרים) צריך להקליק על התמונה בכפתור הימני של העכבר, ומהתפריט שצץ לבחור "שמור תמונה בשם" או "Save Picture As". ואז צריך לבחור איפה על המחשב שלך לשמור את התמונה. כדאי לשמור אותה בתיקיית הדמויות של Game Maker, שנמצאת בדרך כלל בתיקייה C:\Program Files\Game_Maker6\Sprites.


אתגר:

Robot Dancing 2.png

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

Small raindrop.png

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

אתגר:

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

הנה כמה תמונות של כלי רכב שאפשר להשתמש בהן:

Green sedan.png Yellow beetle.png Cement mixer.png School bus.png Bicycle.png Cow.png

אפשר למצוא צלילים למשחקים באתרים רבים, למשל:


המשך הדרך[עריכה]

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

יש כמה דברים שיוכלו לעזור לכם בנסיונות לגלות דברים בעצמכם:

  1. תוכנת תרגום טובה. Game Maker מציג הסבר על כל פעולה כאשר מצביעים עליה בעכבר לכמה שניות, ואם מבינים את ההסברים האלה אפשר לגלות באיזה פעולות להשתמש בשביל לעשות דברים חדשים. תוכנת תרגום מומלצת במיוחד (גם למי שכבר יודע אנגלית טוב) היא בבילון - היא מתרגמת מלים שאתם מקליקים עליהן, ואפשר להוסיף לה מילונים שונים בתחומים רבים, כולל מילונים של מונחי תוכנה, אנציקלופדיות, ועוד.
  2. העזרה של Game Maker, שאליה אפשר להגיע מתפריט Help או בהקשה על F1. כאן אמנם צריך לקרוא יותר אנגלית מאשר בתיאורי הפעולות, אבל מצד שני ההסברים יותר מפורטים, ומכסים גם דברים נוספים ולא רק פעולות.
  3. משחקים שאנשים אחרים הכינו ב-Game Maker. אפשר ללמוד המון מלראות איך אנשים אחרים עשו דברים. למשל, אם אתם רוצים לדעת איך להציג פיצוץ, אפשר לחפש משחק של מישהו אחר שיש בו פיצוצים ולראות איזה פעולות מבצע המשחק ההוא בשביל להציג פיצוץ. אפשר להוריד משחקים כאלה באתרים רבים, ביניהם http://www.gamemaker.nl/games_edit6.html או http://users.tpg.com.au/billkerr/g/d6.htm

חזרה לתוכן הספר

צעד 10: תוספות למתקדמים

נמצאה תבנית הקוראת לעצמה: תבנית:גמייקר/פונג

תוספות למתקדמים עם Game Maker[עריכה]

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

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

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

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

אנו נוסיף פעולה אשר תשנה את מיקום המחבט בעזרת שינוי ערך משתנה של המחבט. אנו נשנה את מיקום המחבט על ידי קביעת ערך חדש עבור המשתנה x.

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

בשביל לשנות את הערך של המשתנה x צריך להוסיף פעולה , שנמצאת בלשונית control: Gmaker set var.png.

בשלב זה יש למלא את הדף בהתאם

Gmaker set x 1.png




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




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

Gmaker set x 2.png

וכעת להסבר.

x+(mouse_x-x)/5

הנוסחה שנראת קצת מסובכת, היא די פשוטה.

mouse_x-x - הוא המרחק בין מקום שהעכבר נימצא לבין המקום שהמחבט נימצא.

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



Gmaker test save.png הרץ ובדוק.