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

כדי להציג את הניקוד והחיים במשחק (גרסת 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 מסומן. (כיוון שהניקוד מצטבר).

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

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

 

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

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

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

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

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

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

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

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

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

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 פיקסלים מהדמות אחריה היא עוקבת.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

change instance

 

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

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

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

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

alarm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Test Instance Count

 

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

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

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

 

פשוט וקל, לא?

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

פשוט וקל, לא?

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

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

בפוסט זה מדריך קצר ליצירת קוביה וירטואלית ב- 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). לחצו על כל מקום במסך כדי לקבל מספרים חדשים באופן אקראי כל פעם מחדש.

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

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

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

יצירת דמות

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

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

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

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

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

הגדרות החדר

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

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

 

תנועת רקע החדר

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

כדי ליצור מצב בו רקע החדר נע לכיוון ההפוך של כיוון מעוף הציפור (להמחשת התנועה) נוסיף לאירוע של תנועת הציפור Key Press Right/Left קטע קוד שכולל את השורה הבאה: background_hspeed = -2 כך שהרקע יזוז שמאלה (סימן המינוס מגדיר את כיוון התנועה לשמאל) או background_hspeed = 2 לתנועה של הרקע ימינה.

באירוע Left/Right Release הוסיפו את הפקודה: background_hspeed = 0, כך הרקע יעצור בכל פעם שהציפור תעצור.

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

birdObjectPro

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

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

[youtube width="600" height="365" video_id="9lp6a6H1X1c"]

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

יצירת נתיב (path) ב-Game Maker

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

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

מתי כדאי להשתמש בנתיב?

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

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

 [youtube width="600" height="365" video_id="z4jCnXpc65Q"]

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

הגדרת נתיב

לכל נקודת מפנה בנתיב יש x, y ומהירות

מהירות 100 = המהירות המקורית של מופע האובייקט.

המהירות תשתנה בהדרגה מנקודה לנקודה (אם יש ביניהן שינוי של ערך המהירות)

 איך מוסיפים או מוחקים נקודות בנתיב?

לחיצה על עכבר ימני למחוק נקודה

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

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

 סוגי קווים

ניתן ליצור קוים ישרים או עגולים

ניתן ליצור נתיב פתוח או סגור

 

שיוך נתיב לאובייקט

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

Path – איזה נתיב לשייך לאובייקט

Speed – מהירות שלילית = מנקודת הסוף להתחלה, מהירות חיובית = מנקודת ההתחלה לסוף

אם נבחר בשדה at end את האפשרות reverse האובייקט ינוע בנתיב מנקודת הסיום להתחלה בחזרה.

Absolute = האובייקט יתחיל לנוע במסלול בדיוק מהמיקום שנקבע בנתיב (גם אם הוא ממוקם בחדר במקום אחר).