תכנות לילדים באמצעות Game Maker/חייזרים/צעד 1: החללית

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



אובייקט החללית[עריכה]

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

Small spaceship.png


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




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

עכשיו תורכם:

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

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

השארת אובייקט בגבולות החדר[עריכה]

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

  1. ללחוץ על הוספת ארוע.
  2. לבחור בסוג ארוע Other (אַזֵר) - אחר. Gmaker other.png
  3. בתפריט שצץ, לבחור Intersect boundary (אִינְטֵרְסֵקְט בַּאוּנְדְרִי) - חוצה את הגבול (של החדר).
  4. להוסיף את פעולת התנועה הפשוטה Gmaker red move button.png בשביל לעצור את החללית.

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



החללית זזה קצת יותר מדי. לא מספיק לעצור אותה - צריך גם להזיז אותה חזרה לתוך החדר. איך מזיזים חזרה?

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

  • xprevious (אִיקְס פְּרִיוְויֵיס) - x הקודם.
  • yprevious (וּוַי פְּרִיוְויֵיס) - y הקודם.

לכן כדי להזיז את החללית חזרה לתוך החדר אפשר להשתמש בפעולה לקביעת ערך של משתנה Gmaker set var.png, ושם לשנות את הערך של המשתנה y ל-yprevious. (את x לא צריך לשנות, כי ממילא מדובר רק בתנועה אנכית - למעלה ולמטה).


Gmaker test save.png מה קורה עכשיו כשמנסים להוציא את החללית מהמסך?



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

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


בשביל ליצור את התחושה שהחללית נעה כל הזמן שמאלה, ניצור רקע שנע כל הזמן ימינה - צעד 2: רקע