19th ינו2014

הגדרות פיזיקה (Game Maker Studio)

by יעל חקשוריאן

הגדרות פיזיקה

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

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

שימו לב שלכל אובייקט נוספה אפשרות של Uses Physcs :

uses physics

סימון האפשרות יפתח את ההגדרות של Physics עבור אותו אובייקט:

uses physics properties

מאפייני פיזיקה

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

Restitution – השבה
השבה ב- Game Maker מגדירה את מידת ה"קפיציות" של אובייקט. למשל, כדור יקפוץ כמה פעמים על משטח/מול משטח.

Collision Group – קבוצות התנגשות
ניתן להגדיר קבוצות התנגשות שיתפקדו בצורה שונה. כברירת מחדל (Collision Group=0) עבור כל אובייקט יש להגדיר אירוע התנגשות.

Linear Damping – דעיכה לינארית
מגדיר את דעיכת המהירות של אובייקט.

Angular Damping – דעיכה זוויתית
מגדירה את דעיכת מהירות התנועה (סיבובית) של אובייקט

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

 

הגדרת החדר

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

Room is physics world

יש לוודא כי האפשרות Room is physics world מסומנת.

17th ינו2014

הוספת ניקוד וחיים למשחק

by יעל חקשוריאן

כדי להציג את הניקוד והחיים במשחק (גרסת Game Maker Studio) יש לבצע את הפעולות הבאות:

1. ראשית וודאו שיש לכם במשחק את האובייקטים הבאים:

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

דמות אויב שנעה באופן אקראי בחדר

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

2. הוסיפו אובייקט חדש עבור הניקוד, score_obj

הוסיפו לאובייקט זה אירוע Game Start ושייכו לו את הפעולה Set Score והגדירו את הניקוד על 0.

שימו לב, אין צורך לשייך ספרייט לאובייקט זה. כך יראה המסך:

score1

3. הוסיפו לאותו אובייקט, score_obj  אירוע Draw. אירוע Draw משמש עבור ציור/כתיבה על המסך.

4. שייכו לאירוע פעולת Draw Score והגדירו את המיקום בו תרצו להציג את הניקוד במסך (x,y) כך:

score2

5. הוסיפו אובייקט חדש עבור החיים lives_obj

6. הוסיפו לאובייקט זה אירוע Game Start ושייכו לו את הפעולה Set Lives והגדירו את החיים על 3.

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

7. הוסיפו אירוע No More Lives שנמצא ב- others ושייכו לו פעולה מתאימה (מעבר לחדר סיום או הצגת הודעה מתאימה)

8. הוסיפו לאובייקט, lives_obj אירוע Draw. ושייכו לו את פעולת Draw Life Image והגדירו את המיקום בו תרצו להציג את הניקוד במסך (x,y) כך:

lives

9. הוסיפו לדמות הראשית אירוע התנגשות עם האויב ושייכו לו את הפעולות הבאות:

הקפצה של הדמות לנקודת ההתחלה.

הורדה של החיים ב-1 וודאו שסימנתם את שדה Relative (כיוון שההורדה של החיים היא תמיד מכמה שנשארו).

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

מחיקה של מופע אובייקט המטבע

הוספת ניקוד +10. גם כאן יש לוודא ששדה Relative מסומן. (כיוון שהניקוד מצטבר).

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

הריצו את המשחק.

 

07th מרץ2013

איך לשנות את האייקון של העכבר

by יעל חקשוריאן

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

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

מתי נרצה לשנות את הסמן של העכבר?

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

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

1 ליצור אובייקט שיופיע על המסך ויזוז לפי המיקום של העכבר.

2. להסתיר את הסמן המקורי של העכבר.

 

יצירת ספרייט ואובייקט

אני יצרתי ספרייט פשוט של כוונת, על-ידי יצירת עיגול עם שני קוים בתוכו – כמו פלוס:

Sight

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

הגדרת אירועים ופעולות

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

לאירוע זה נוסיף פעולה Jump to Positin שנמצאת בלשונית move. 

בחלון המאפיינים שיפתח נגדיר:

בשדה X: את הערך mouse_x (כלומר, נקודת ה-X של האוביקט יהיה בנקודת ה- X של העכבר)

בשדה Y: את הערך mouse_y (כלומר, נקודת ה-Y של האוביקט יהיה בנקודת ה- Y של העכבר).

יצירת חדר

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

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

 

ביטול סמן העכבר

כדי לבטל את הצגת סמן העכבר המקורי בחדר, נעבור למאפייני קובץ המשחק – Global Game Settings שנמצא מתחת לכל הספריות בחלון העריכה:

globalProperties1

בחלון המאפיינים שיפתח, בלשונית Graphics (הלשונית הראשונה), בטלו את הסימון באפשרות display the cursor.

globalProperties

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

 

21st ינו2013

כלים לפיתוח משחקי מחשב בכיתה

by יעל חקשוריאן

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

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

 

Game Maker | Scratch | Kodu | Mama

Game Maker

Game Maker קיימת כבר מספר שנים ומיועדת עבור מפתחי משחקים מתחילים וגם עבור מפתחים מקצועיים. לאחרונה, Game Maker יצאה בגרסה באמצעותה ניתן לפתח משחקים גם לסמארטפונים: iOS, אנדרואיד, Windows Phone 8 ו- Html 5.

בגרסה הבסיסית אפשר לפתח משחק למחשב אישי והיא מתאימה למערכות הפעלה Windows ו- Mac.

לתוכנה קיימת שפת תכנות – GML – Game Maker Language ייעודית, מי שמעוניין לפתח באמצעות קוד, או להוסיף קוד לפיתוח.

הורדה והתקנה של Game Maker

את התוכנה ניתן להוריד מאתר YoYo Games,  קיימת אפשרות להוריד את התוכנה גם באמצעות חשבון ב- Steam

מדריכים ל- Game Maker

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

כמו כן, קיים אתר ה- Wiki של Game Maker הכולל מדריכים לפיתוח משחק החל מהצעד הראשון.

חומרי הדרכה למורים ב- Game Maker (באנגלית)

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

יתרונות

ניתנת להורדה חינם

התוכנה מתאימה גם למי שאינו יודע לתכנת ( ניתן לפתח משחקים באמצעות Drag & Drop).

בגרסאות מלאות התאמה ל- iOS, אנדרואיד, Windows Phone 8 ו- Html 5.

תמיכה ב- 3D.

מתאימה גם לתוכניתנים  ניתן לפתח בשפת GML.

חסרונות

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

גרסאות Game Maker Studio Standard / Professional – בתשלום.

בסרטון דוגמא לאפשרויות ויכולות שאפשר ליצור עם Game Maker

Scratch

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

את התוצרים ניתן להעלות לאתר Scratch ישירות מהתוכנה, לאחר רישום משתמש באתר.

הורדה והתקנה של תוכנת Scratch

את התוכנה בעברית ניתן להוריד מאתר Scratch, הכולל גם תמיכה בהתקנה.

מדריכים ל- Scratch

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

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

גם לScratch קיימים פורומים לפי תחומים או שפה.

יתרונות

ניתנת להתקנה ועבודה על מערכות הפעלה: Windows, Mac, Ubuntu.

קיימת גרסה בעברית, מתאים גם לכיתות נמוכות.

ניתן להורדה בחינם.

לא נדרש ידע בתכנות

חסרונות

פרסום התוצרים אפשרי באתר Scratch בלבד.

אין תמיכה בתלת מימד (3D).

Kodu

Kodu היא סביבת פיתוח ממעבדות המחקר של מיקרוסופט ליצירת משחקים בתלת מימד (3D) למחשבי PC ול- 360 XBOX. ניתן ליצור משחקים מעולמות קיימים, או ליצור עולמות חדשים. באתר XBOX ניתן להוריד משחקים שפותחו ב- Kudo.

 

הורדה והתקנה של Kodu

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

קיימת ערכת-כיתה ל- Kodu המיועדת למורים הכוללת מדריכים ללימוד Kudo ואף יחידת לימוד למתמטיקה.

מדריכים ל- Kodu

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

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

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

יתרונות

ניתנת להורדה חינם

תמיכה בתלת מימד (3D)

קיים מגוון רחב של עולמות מהם ניתן ליצור משחקים חדשים

לא נדרש ידע בתכנות

חסרונות

ניתן להתקין על מערכות Windows בלבד

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

גרסה לפיתוח משחקים ל- Xbox – בתשלום

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

 

Mama

Mama היא שפת תכנות לימודית לבניית משחקים ואנימציות בתלת ממד שפותחה ע"י החברה הישראלית – עיטם רובוטיקה.

פיתוח המשחקים מתבצע באמצעות Drag & Drop. את האנימציות ניתן לשמור כסרטונים ואת המשחקים כקובץ הפעלה (exe)

הורדה והתקנה של Mama

ניתן להוריד את גרסת הניסיון (ל-30 יום) בעברית מהאתר הרשמי .

מדריכים ל-Mama

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

באתר מדריך ייעודי למורה הכולל מדריכים לבניית מערך הדרכה אינטראקטיבי.

קיימים גם מדריכים ליצירת עולמות שלב אחר שלב.

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

יתרונות

תמיכה מלאה בעברית

תמיכה בתלת מימד (3D)

התוכנה מתאימה גם למי שאינו יודע לתכנת ( ניתן לפתח משחקים באמצעות Drag & Drop)

חסרונות

התוכנה בתשלום.

 

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

31st דצמ2012

איך לעשות אובייקט עוקב אחרי אובייקט

by יעל חקשוריאן

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

מתי נצטרך להשתמש במצב כזה? כשנרצה למשל, שדמות אויב תרדוף אחרי דמות ראשית.

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

יצירת ספרייטים ואובייקטים לדמויות

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

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

הוספת אירוע צעדים

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

step

לאירוע זה נשייך פעולה של step avoiding. פעולה זו נמצאת בלשונית Move בקטגוריית Steps:

step avoiding

Step Avoiding, בשונה מ- Step Twards נמנע מלעלות על הדמות אחריה עוקבים.

בחלון המאפיינים שנפתח נציין את ה-X ו-Y של הדמות שאחריה עוקבים ואת מהירות המעקב באופן הבא:

step avoiding

שימו לב, לפני ה-X וה- Y יופיע שם האובייקט ונקודה.

במקרה של הדוגמה שלי, שם האובייקט הוא boy ולכן נקודת ה-X תהיה boy.x ובאותו אופן יש להגדיר את נקודת ה- Y.

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

הריצו את המשחק. שימו לב, הדמות העוקבת, אינה "דורסת" את הדמות אחריה היא עוקבת.

 

מעקב ושמירת מרחק

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

הבדיקה משתמשת בפקודה של Game Maker שבודקת את המרחק מאובייקט –  (distance_to_object(boy – בסוגריים נכתוב את שם האובייקט, כך יראה חלון המאפיינים של הבדיקה:

distance_to_object

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

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

06th דצמ2012

איך לעשות אובייקט מתפוצץ

by יעל חקשוריאן

מיקול הפוסט הזה בשבילך 🙂

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

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

יצירת ספרייטים

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

יצירת אובייקטים

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

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

הוספת אירועים ופעולות לדמות הראשית

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

נוסיף לאובייקט הדמות הראשית אירוע התנגשות עם האויב ונשייך לה את הפעולות הבאות:

השמעת סאונד מתאים (לא חובה)

פעולה של שינוי מופע אובייקט – Change instance בחלון המאפיינים שיפתח יש לבחור את האובייקט שיצרתם עבור ההתפוצצות ולשנות בשדה preform events את האפשרות מ- no ל- yes (אחרת לא יוצגו כל רצף התמונות ליצירת אנימציה של התפוצצות).

כך יראה חלון המאפיינים:

change instance

 

 הוספת אירועים ופעולות לאובייקט ההתפוצצות

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

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

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

alarm

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

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

כרגיל, אני מצרפת את קובץ gmk הכולל את כל השלבים להורדה.

11th נוב2012

פעולות ואירועים – Game Maker

by יעל חקשוריאן

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

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

event actions

מה הוא אירוע?

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

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

אירוע יכול להיות מצב מוגדר ב- Game Maker, למשל סוף קו הבריאות, התחלה או סיום משחק, סיום חיים, סיום או התחלה של נתיב וכד'.

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

הוספת אירוע מתבצעת ע"י לחיצה על Add Event בחלון המאפיינים של אובייקט:

add event

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

events

 

פעולה

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

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

כאשר דמות יוצאת מצד אחד של החדר ונכנסת מצדו השני – מתבצעת פעולה של הקפת החדר (wrap screen)  לאחר אירוע יציאה מהחדר  (outside room).

הוספה של פעולה מתבצעת ע"י גרירה של הפעולה מאחת הלשוניות לחלון הפעולות:

actions

סוגי פעולות

הפעולות נחלקות ל-7 קבוצות:
Move actions: פעולות תנועה
Main actions, set 1: יצירה, שינוי והריסה של מופעים של אובייקט, צלילים, חדרים
Main actions, set 2: תזמון, מתן הודעות למשתמש, פעולות על המשחק עצמו: התחלה, סיום, טעינה ושמירה של המשחק.
Control actions: פעולות בקרה שליטה ובקרה על פעולות.
Score actions: פעולות ניקוד (הניקוד, החיים, ובריאותו של השחקן).
Extra actions: קיים רק בגרסת pro edition וכולל פעולות לביצוע על חלקיקים (particles) פעולות ל-CD ולסמן העכבר.
Drawing actions: פעולות ציור (שינוי ספרייט, רקע, כתיבת טקסט).

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

תרגיל יצירה של אובייקט ופעולה

רוצים לתרגל אירועים ופעולות? הנה תרגיל קצר ביצירה של אובייקט, ספרייט, אירוע ופעולה.

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

שלבים בתרגול:

צרו קובץ משחק חדש (ריק מתוכן)

צרו Sprite של סמיילי (או אחר) ותנו שם לSprite, למשל smile

צרו סאונד חדש, ע"י העלה של קובץ beep. תנו שם לסאונד: Beep

צרו אובייקט חדש והגדירו עבורו את Sprite smile. תנו לאובייקט שם: smile_object

הוסיפו לאובייקט אירוע לחיצת עכבר (Left Released)

הוסיפו פעולה לאירוע לחיצת עכבר: Play Sound ובחרו בסאונד beep.

שמרו את השינויים שביצעתם בחלון Object Properties.

צרו חדר חדש ומקמו את האובייקט שיצרתם במרכז החדר.

הריצו את המשחק ונסו את הפעולה.

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

 

11th נוב2012

אובייקטים ספרייטים ומופעים

by יעל חקשוריאן

במדריך זה אסביר מה ההבדל בין אובייקטים ומופעים ומה הם ספרייטים ב-Game Maker.

 

אובייקט – Object

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

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

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

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

האובייקטים נשמרים בתיקייה ייעודית ב- Game Maker שנקראת Objects.

ספרייטים – Sprites

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

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

ספרייטים נשמרים בתיקייה ייעודית שנקראת Sprites.

 

מופע – Inastance

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

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

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

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

 

 

 

 

 

30th ספט2012

sprite index – אינדקס של ספרייט

by יעל חקשוריאן

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

Subimages – תת תמונה

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

איך נראה רצף התמונות של ספרייט?

 

היכנסו לספרייט כלשהו על ידי לחיצה על אייקון הספרייט

אם הספרייט מכיל יותר מתמונה אחת תוכלו לראות את מספר התמונות שהוא כולל מתחת לגודל התמונה – Number of subimages.

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

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

edit sprite

כדי לערוך את התמונות או לשנות את הסדר שלהם לחצו על edit sprite:

edit_sprite

בחלון Sprite Editor תוכלו לראות את כל תתי התמונות של ספרייט זה:

sprite editor

בחלון זה תוכלו לערוך את תתי התמונות או לשנות את הסדר שלהם. שימו לב התמונה הראשונה נקראת image 0.

שינוי של סדר התמונות

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

edit_sprite_move

 

עצירה של הרצת תתי התמונות בספרייט –  image_speed

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

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

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

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

Set variable image_speed=0
פעולה זו עוצרת את ההרצה האוטומטית של תתי התמונות ומציגה את התמונה הראשונה בלבד.

כך יראה חלון הפעולות:

image_speed

 

 שינוי תת תמונה להצגה – image_index

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

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

2. נוסיף לכל כפתור אירוע לחיצה בעכבר – השתמשו באירוע Left Released

3. לאירוע זה הוסיפו פעולה של הגדרת משתנה ושנו בהגדרה של המשתנה במקום self ל-object ובחרו את האובייקט של הדמות שיצרתם. בשדה variable הגדירו את המשתנה image_index  ובשדה value בחרו את המספר עבור תת התמונה. במקרה שלי תמונת הבן היא 0 ותמונת הבת היא 1.

כך יראה חלון הגדרת המשתנה image_index עבור כפתור בחירה בדמות הבן:

image_index

 

4. צרו חדר והוסיפו את אובייקט הכפתורים והדמות לחדר.

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

כך יראה המשחק:

כרגיל, אני מצרפת את קובץ המשחק בפורמט gmk להורדה (14kb).

אהבתם את המדריך? אל תשכחו לעשות לייק

20th מאי2012

בדיקה של אובייקטים במשחק

by יעל חקשוריאן

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

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

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

אם הדמות אוספת את כל הטיפות – היא עוברת לחדר הבא שבו יוצג הטקסט: You Win. אז איך עושים את זה? פעלו לפי השלבים הבאים:

יצירה של אובייקטים

צרו תחילה ספרייטים ואובייקטים עבור הדמות הראשית והטיפה (Bubble_obj)

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

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

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

אובייקט מנהל – בדיקה של פריטים

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

כיוון שהבדיקה מתבצעת כל הזמן נשייך אותה לאירוע צעדים

לאירוע זה נוסיף את הבדיקה Test Instance Count ובמאפיינים נציין איזה פריט לבדוק וכמה פריטים צריכים להיות:

הבדיקה שאני עשיתי – האם מספר הפריטים קטן מ-1 (זה אומר שלא נשארו אובייקטים מסוג זה בשלב)

Test Instance Count

 

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

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

אני הוספתי בחדר השני אירוע Draw שיכתוב את הטקסט: You Win במסך. תוכלו להוריד את קובץ המשחק לדוגמה כאן. (21kb)

 

פשוט וקל, לא?

 

 

16th מאי2012

איך לעשות Pause ב-Game Maker

by יעל חקשוריאן

קצת מוזר, אבל אין פעולה שמורה של Game Maker עבור עצירה (pause) במשחק.

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

לשם כך נכין שני אובייקטים עם ספרייטים כמובן.

יצירת אוביקטים וספרייטים

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

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

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

הוספת אירועים ופעולות

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

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

לאירוע זה הוסיפו פעולה של קוד – execute code והוסיפו את הטקסט הבא:

keyboard_wait();
io_clear();
כעת צרו חדר והוסיפו לו את שני האובייקטים.
הריצו את המשחק ולחצו על pause. אם המשחק עצר, עשיתם את זה נכון.
כרגיל אני מצרפת את קובץ המשחק לדוגמה להורדה (9.6kb)

פשוט וקל, לא?

אהבתם את הפוסט? אל תשכחו לעשות לייק

04th אפר2012

איך ליצור קובייה ב- Game Maker

by יעל חקשוריאן

בפוסט זה מדריך קצר ליצירת קוביה וירטואלית ב- Game Maker.

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

יצירת ספרייטים

ניצור 6 ספרייטים עבור כל פאה של הקובייה.

יצירת אובייקט

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

הגדרת פעולות לאובייקט

את פעולות שינוי הספרייט של האובייקט נגדיר באירוע יצירה – create.

סבירות וסיכויים

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

בכל פעם שאנו מטילים קובייה שיש לה 6 פאות הסבירות שתופיע הספרה 1 היא 1/6, כיוון שחוץ מהספרה 1 יכולות להופיע באותה מידה כל אחת מ-5 הספרות הנוספות. כל אחת באותה סבירות. לעומת זאת, אם הספרה 1 היתה מופיעה פעמיים על הקובייה, נניח במקום הספרה 6, תופיע שוב הספרה 1, אזי הסבירות שתופיע הספרה 1 כשנטיל את הקובייה היא 2/6.

כיוון הקובייה שלנו מייצגת קובייה תיקנית, הסבירות עבור כל אחת מהספרות היא 1/6.

נחזור להגדרת הפעולה עבור אירוע היצירה

כעת נוסיף את הפעולה – test chance שלמעשה בודקת את הסיכויים עבור כל אחת מהספרות. פעולה זו נמצאת בלשונית control. במאפייני בפעולה בשדה sides נגדיר 6, כיוון שזו הסבירות שתופיע כל ספרה:

test Chance

נוסיף את הפעולה change sprite עבור כל בדיקה בהתאם.

כך יראה המסך לאחר הוספת כל הפעולות לאירוע יצירה – create:

test Chance actions

 יצירת חדר

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

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

אהבתם את הפוסט? עשו לייק

29th פבר2012

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

by יעל חקשוריאן

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

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

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

כללי יסוד בעיצוב ממשק ותפריטי מידע

בכל עיצוב של ממשק משתמש/מסך חשוב שהמשתמש ידע תמיד לענות על 3 השאלות הבאות:

  • איפה אני?
  • לאן אני הולך/ מה אני רוצה לעשות?
  • איך אני עושה את זה?

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

איך תעצבו ממשק נכון? הקפידו על הכללים הבאים של עשה ואל תעשה:

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

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

שליטה – אפשרו לשחקן שליטה טובה בדמויות ובתפריטים. גם כאן עדיף להשתמש במוסכמות, למשל שליטה בדמות באמצעות מקשי החצים או ע"י המקשים AWSD. אנשים רוצים להתחיל לשחק בלי להתחיל ללמוד קודם איזה מקש משמש עבור איזה פעולה. השתמשו גם במקשים: רווח, Ctrl, Enter, Shift עבור פעולות כמו ירי, קפיצה, פתיחה וכו'. השחקן צריך להרגיש בכל שלב שהוא שולט במשחק ולא ההפך.

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

נוחות – אם המשחק שלכם מאפשר – תנו לשחקן אפשרות לבחור אם לשחק עם העכבר או עם המקלדת. אל תגדירו כמה מקשים לביצוע פעולה פשוטה (למשל לחיצה על Ctrl+Alt כדי לבצע קפיצה, הרבה יותר פשוט להשתמש במקש אחד). אל תכניסו כל מיני "הפתעות" לשחקן, גם אם אתכם זה ממש מצחיק. לבטל את האפשרות של סגירת חלון המשחק ע"י לחיצה על ה- X בחלון או ע"י לחיצה על Esc לא ממש תצחיק את השחקן. להפך, זה די יעצבן אותו.

 

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

למה בכלל צריך לתכנן את המסך?

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

השתכנעתם? אז אפשר להתחיל.

 איך מתחילים לתכנן?

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

רשמו לעצמכם את התשובות לשאלות הבאות:

  • מה יהיה גודל מסך המשחק?
  • האם יוצג תפריט ניווט או תפריט מידע אחר במסך?  למשל מפה, רשימת מצאי/inventory
  • האם יוצגו חיים/ניקוד?
  • האם גודל השלב/עולם גדול מהשטח של המסך עצמו?
  • מה גודל הדמויות והאובייקטים במשחק?

עכשיו תוכלו להתחיל לשרטט תרשים כללי של המסך.

 הגדרת מיקום האובייקטים במסך

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

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

כך יראה התרשים לפי החלטות אלו:

תכנון מסך במשחק

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

ייצוג של המרכיבים במסך/עיבוי התרשים

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

כמו כן, כדאי לציין האם בנוסף לתמונות יוצג מלל. למשל עבור עזרה יופיע אייקון של סימן שאלה [?] וגם המלל: Help.

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

 

תכנון מסך שלב 2

הצגת אובייקטים במסך

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

כך למשל:

תכנון מסך חלק 3

הערכה ושינויים

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

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

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

שינויים ותיקונים

אם אתם לא מצליחים להכניס את כל האובייקטים יש 3 אפשרויות:

1. להקטין את הגודל של התפריטים

2. להגדיל את הגודל של כל המסך. (למשל, במקום 600X800, אפשר לשנות ל 800X1280)

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

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

 

אהבתם את הפוסט? אל תשכחו לעשות לייק

15th פבר2012

איך ליצור משחק מחשב פשוט – חלק ב'

by יעל חקשוריאן

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

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

אוביקט המטוס

נתחיל עם אוביקט המטוס ע"י יצירת ספרייט ואוביקט מתאימים.

לאוביקט המטוס נשייך אירוע אחד ופעולה אחת – כאשר המטוס מחוץ לחדר (אירוע outside room) נהרוס את המופע של האוביקט (destroy the instance).

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

אוביקט מנהל

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

לאוביקט זה נשייך שני אירועים: אירוע יצירה ואירוע alarm.

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

1. נבחר את האוביקט המתאים, במקרה זה airplaneObj

2. נגדיר את נקודת ה-X בה יופיע האוביקט. כדי להגדיר נקודה אקראית, נשתמש בפונקציה random ובסגריים נגדיר את התחום ממנו המחשב יחשב נקודה אקראית.
כדי שהמטוס לא יופיע מחוץ למסך נגדיר את רוחב המסך (כלומר רוחב החדר) פחות רוחב האוביקט של המטוס.
לדוגמא, רוחב החדר במקרה זה הוא 640 ורוחב המטוס הוא 128, ולכן הנקודה המקסימלית שהאוביקט יכול להופיע בו על ציר ה-X מבלי שהמטוס יחתך היא 512. אני הגדרתי 510. את הרוחב נגדיר בתוך סגריים אחרי שם הפונקציה, כך:

create airplane

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

ערך המהירות צריך להיות בערך כמו המהירות של תנועת הציפור והכיוון כלפי מטה. כדי להגדיר את הכיוון למטה הגדירו 270. למה? כיוונים מוגדרים כמו זויות במעגל נגד כיוון השעון, ולכן ימינה=0, למטה=270, שמאלה=180 ולמעלה=90.

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

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

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

אירוע שעון מעורר

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

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

manager object

הוספת פעולות ואירועים לציפור

הוספת חיים וניקוד לאוביקט הציפור

לאוביקט הציפור נוסיף אירוע יצירה ונשייך לו את הפעולות הבאות:

הגדרת חיים – אני הגדרתי 3, תוכלו להגדיר כמות אחרת אם תרצו. – set lives

הגדרת ניקוד – מתחיל ב- 0 – set the score

הצגת הניקוד והחיים בחלון המשחק – set the score caption info

 

אירוע No more lives

לאוביקט הציפור נוסיף אירוע נוסף – no more lives, זהו אירוע שמור של game maker עבור מצב בו אין יותר חיים. נשייך לו פעולה של מעבר לחדר של סיום המשחק (לא תוכלו ליצור מעבר לחדר שלא קיים, לכן צרו תחילה חדר שנקרא end game). משמעות אירוע זה היא שכאשר נגמרים החיים שהגדרתם קודם, המשחק יעבור למסך הסיום.

הוספת אירוע התנגשות

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

bird object

 הרצת המשחק

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

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

 

אהבתם את הפוסט? אל תשכחו לעשות לייק 

עמודים:123»