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


הקדמהעריכה

מהו הסקריפט?עריכה

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

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

כמה ביטויים ומשתנים בסיסייםעריכה

  • x - נקודת הציון x של האובייקט
  • y - נקודת הציון y של האובייקט
  • hspeed - המהירות ההורזנטלית (מאוזנת), פיקסלים לשנייה
  • vspeed - המהירות הורטיקלית (אנכית), פיקסלים לשנייה
  • direction - הכיוון הנוכחי של אובייקט בתנועה במעלות (0-360)
  • speed - המהירות הנוכחית בכיוון מסויים
  • visible - בין אם האובייקט הוא נראה (1) או בלתי נראה (0)
  • score - הערך הנוכחי של הניקוד
  • lives - המספר הנוכחי של החיים
  • health - הבריאות נוכחית (0-100)
  • mouse_x - מיקום ה-x של העכבר
  • mouse_y - מיקום ה-y של העכבר

השימוש שלהם בסקריפטעריכה

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

אז איך בונים את הסקריפט?עריכה

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

איך משתמשים בסקריפט בתור פעולהעריכה

כדי להשתמש בסקריפט בתור פעולה, צרו אובייקט, הגדירו אירוע, ואז בפעולה, בטאב control, גררו את "Execute a piece of code". שם אתם כותבים את הסקריפט שלכם. אל תשכחו למקם את האובייקט שבו יש את הסקריפט בחדר, רק כך הוא יפעל. עוד הערה: אם אתם רוצים שהסקריפט יפעל תמיד, שימו את הפעולה באירוע Step.

דוגמה (ניתנת לניסוי)עריכה

צרו משחק חדש. צרו ספרייט, ציירו או יבאו תמונה לספרייט. צרו לספרייט אובייקט. צרו אירוע חדש, Create. שם הפעילו שעון, Alarm 0, כוונו אותו ל-1. צרו אירוע חדש, Alarm 0, ובו כוונו את השעון מחדש ל-1, כך שיפעיל אותו מחדש כל פעם. לכו לcontrol וגררו את Execute a piece of code. בסקריפט כתבו:

{ ball.x = mouse_x; ball.y = mouse_y; }

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