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) או ע"י הוספת פעולה ליצירה של אובייקט.

 

 

 

 

 

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

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

08th פבר2012

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

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

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

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

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

16th ינו2012

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

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

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

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

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

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

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

 

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

הגדרת נתיב

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

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

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

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

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

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

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

 סוגי קווים

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

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

 

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

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

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

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

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

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

 

22nd אפר2011

מעקב אחר דמות ב-Game Maker באמצעות Views

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

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

יצירת דמות

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

הגדרות החדר

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

בלשונית setting קבעו את רוחב החדר שיהיה גדול יותר מ-1000 פיקסלים. אני הגדרתי את הרוחב על 6400.

room View

בלשונית background הוסיפו רקע, וודאו שתמונת הרקע תתפרס לרוחב כל המסך ע"י סימון V באפשרות Tile Hor.

tile Hor

בלשונית View נגדיר את גודל המסך בפועל ואת המעקב אחר הדמות במסך:

הגדרת גודל המסך

  1. ראשית סמנו V באפשרויות: Enable the use of View ו- Visible when room starts.
  2. View in room – הגדירו איזה חלק מהחדר יראה ב-view, אני בחרתי רוחב של 300 פיקסלים. כמו כן הגדרתי את רוחב המסך כולו ל-300, כך שתהיה התאמה בין המראה למסך.

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

הגדרת מעקב אחר הדמות

בחלק התחתון – Object following בחרו את הדמות שאחריה יתבצע המעקב.

Hbor, Vbor – קובעים את המרחק של גבול המראה מהאובייקט הנבחר, ניתן לבחור רק את המרחק מהצד השמאלי והצד העליון.
מרחק של אריח אחד= 32 , חצי = 16 . (אם לא שונו הגדרות ברירת המחדל של החדר)
המרחק מהצד הימני והצד התחתון תמיד=0.

Hsp, Vsp – קובעים את המהירות שהמראה עוקב אחר האובייקט
0 = ללא תזוזה. במקרה זה הדמות תיעלם מהמסך לאחר שתעבור את 300 הפיקסלים הראשונים
1 = עיכוב / delay. במקרה זה המסך נמצא תמיד צעד אחד אחרי הדמות
1 – = תואם את מהירות האובייקט. זה המצב שאנחנו רוצים – כלומר המסך תמיד עוקב אחר הדמות

כך יראה מסך הגדרות החדר בסיום הגדרת כל המאפיינים:

view Border
שימו לב שניתן לראות את גבול המראה, במקרה זה x=300.

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

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

24th מרץ2011

חדרים ב-Game Maker

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

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

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

במדריך זה הסבר קצר על יצירת חדרים ומעברים בין חדרים.

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

create Room

מאפייני החדר

לכל חדר 5 לשוניות עבור מאפיינים שונים:

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

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

objects – לשונית עבור הוספת האוביקטים לחדר

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

tiles – לשונית עבור הוספת אריחים לחדר.

Room Properties

הגדרת כותרת החדר

כדי להגדיר כותרת לחדר, עברו ללשונית setting.

 

room Setting

שדה Name לא מוצג במשחק עצמו, זהו שם החדר שמופיע בסרגל עריכה ב-game maker תחת ספריית Rooms.

Caption for the room – המלל שתקלידו בשדה זה יופיע בכותרת המשחק לאחר הפעלתו.

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

מעבר בין חדרים

כדי ליצור מעבר בין חדרים, יש ליצור יותר מחדר אחד, כמובן. בדוגמא למדריך זה יצרתי שלושה חדרים: Menu, room1, room2.

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

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

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

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

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

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

next Room

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

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

הצגת שם החדר

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

1. צרו אובייקט חדש ללא ספרייט – textMngr

2. הוסיפו לאוביקט  אירוע draw

3. שייכו לאירוע זה את הפעולות עבור הצגת טקסט. אם אינכם זוכרים כיצד, קראו שוב את הפוסט להצגת טקסט במיקום מוגדר מראש.
שימו לב, כדי להציג את כותרת החדר, השתמשו במשתנה draw var וציינו בשדה variable את המשתנה room_caption. משתנה זה מציג את המלל שהקלדתם בשדה Caption for the room בלשונית setting של החדר. כך יראה חלון המאפיינים של אוביקט textMngr.

Drow Room

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

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

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

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

06th פבר2011

Time Line ב- Game maker

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

Time Line ב-Game Maker מיועד עבור יצירת אירועים בזמן מוגדר מראש.

מה ההבדל בין  אירוע השעון המעורר – alarm ל- time line? הראשון מיועד עבור יצירת אירוע אחד בזמן נתון, ואילו time line מאפשר לנו לקבוע רצף של אירועים בזמן נתון. בנוסף נוכל להשתמש ברצף האירועים האלו בכל פעם שנרצה ע"י הפעלת ה-time line מבלי ליצור אותם שנית.

אז איך עובדים עם time line? בואו נתחיל.

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

הגדרת התרחשות הפעולות

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

  • אוביקט דמות השומר תתחיל לפטרל בחדר (תזוזה ימינה ושמאלה)
  • תידלק אש בכניסה

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

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

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

הוספת time line

בסרגל הכלים לחצו על אייקון הוספת time line.

time Line
יפתח חלון המאפיינים של time line:

לחצו על Add +  להוספת אירוע

create time line

יפתח חלון הגדרת רגע (moment) עבור האירוע:

add moment

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

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

create time line

תוכלו להוסיף עוד אירועים ועוד רגעים (step) שיקרו באותו time line.

מאפיינים נוספים:
Merge – ממזג את הפעולות של הזמנים שנבחרו.
Shift – מוסיף מספר צעדים לכל הזמנים שנבחרו.

לאחר הגדרת Time Line ניתן להקצות אותו למופע של אובייקט כלשהו ע"י הפעולה Set time line.

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

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

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

2. הוסיפו אירוע התנגשות לדמות הראשית עם החומה, לאירוע זה שייכו פעולת Start moving in a direction וקבעו את התנועה לעצירה (סימון הריבוע האמצעי ומהירות 0).

stop

הוסיפו אירוע התנגשות לדמות המשנית עם החומה, לאירוע זה שייכו פעולת Revers horizontal.

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

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

time Line5

יצירת החדר

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

room

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

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

26th ינו2011

בדיקה של ביטוי ב- Game Maker

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

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

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

אז איך עושים את זה?

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

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

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

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

הוספת משתנה עבור הבדיקה

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

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

  1. הוסיפו אירוע יצירה לדמות הראשית
  2. הוסיפו פעולה של הגדרת משתנה checkNo. פעולת הגדרת משתנה נמצאת בלשונית control.
  3. השאירו את הערך של המשתנה על 0 (כיוון שאנחנו מתחילים לספור כאשר לדמות אין מטבעות בכלל).

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

check No Var

אירוע התנגשות עם מטבע

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

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

  1. השמדה של אוביקט המטבע
  2. הוספה של בדיקת ביטוי – Test Expression עבור המשתנה checkNo.
    הבדיקה היא עבור הביטוי: checkNo < 4 כלומר תבצע את הפעולות הבאות, כל עוד checkNo קטן מ-4:
  • הוספה של 1 למשתנה checkNo, שימו לב, יש לסמן V בשדה Relative בהוספה של 1 לערך הקיים במשתנה.
  • אחרת (כלומר כאשר checkNo גדול מ-4) – צור מופע של אוביקט מטיל זהב, ע"י הוספת הפעולה create instance וקבעו את ה-X וה-Y ל-0, כך שהמופע של אוביקט מטיל הזהב יופיע בקצה השמאלי העליון של החדר.

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

add 1 to checkNo

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

test expression

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

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

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

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

28th דצמ2010

יצירת משחק פלטפורמה ב-Game Maker

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

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

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

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

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

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

כעת ניצור שני אובייקטים:

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

platform

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

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

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

פעולות לאירוע step

1. בדיקה האם מתחת לדמות האוביקט אין כלום (פלטפורמה). אם אין פלטפורמה נוסיף לדמות פעולה של משיכה כלפי מטה, אם יש פלטפורמה, נעצור את המשיכה של הדמות כלפי מטה.
ל-game maker יש פעולה מיוחדת לבדוק אם יש מתחת לאוביקט והיא Check Empty שנמצאת בלשונית control של הפעולות.

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

check Empty

2. הוספת פעולה Set Gravity

אם אין אוביקט solid מתחת לדמות נוסיף פעולת set gravity ובשדה direction נגדיר את הכיוון כלפי מטה, כלומר 270. כיוונים מוגדרים כמו זויות במעגל נגד כיוון השעון, ולכן ימינה=0, למטה=270, שמאלה=180 ולמעלה=90.

בשדה gravity נציין ערך נמוך מ-1, בד"כ 0.5 מספיק ליצירת משיכה של הדמות כלפי מטה.

gravity

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

שוב נוסיף את פעולת Set Gravity אבל הפעם נציין בשדה gravity את הערך 0. כך נגרום לעצירה של הדמות.

התנגשות עם פלטפורמה

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

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

1. move to contact

  • בשדה direction נציין 270, כלומר כלפי מטה
  • בשדה maximum נגדיר את המהירות המקסימלית שבה האוביקט ינוע כלפי מטה, אני ציינתי 12, אבל גם 5 זו מהירות מספיקה, והערך תלוי במרחק שיש לדמות לעבור בדרך למטה.
  • והדבר האחרון – לציין את התנועה לאוביקטים שהם מסוג solid.

כך יראה חלון האפשרויות של הפעולה move to contact:

move to contact

2. Vertical Speed

הפעולה האחרונה שנוסיף לאירוע ההתנגשות היא Set Vertical Speed עם הערך 0. כך נגרום לעמוד על הפלטפורמה ולא להמשיך ליפול כלפי מטה.

תנועה של הדמות לצדדים

יש יותר מדרך אחת להזיז את הדמות ע"י מקשי החצים, אני מעדיפה את האירועים key press ו-key release

1. הוסיפו אירוע key press right והוסיפו לו את הפעולות:

  • move free קבעו את הכיוון לימין ואת המהירות ל-5
  • change sprite פעולה של שינוי הספרייט לספרייט שפונה לכיוון ימין.

2. חזרו על אותן פעולות לאירוע key press left (כמובן קבעו את הכיוון והספרייט לצד שמאל הפעם).

3. הוסיפו אירוע key release right והוסיפו לו פעולה של move free. כדי שהדמות תעצור, לחצו על הריבוע האמצעי וקבעו את המהירות ל-0.

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

stop

4. גם לאירוע key release left הוסיפו את הפעולה move free עם אותם מאפיינים כמו בסעיף 3.

קפיצה

כדי ליצור קפיצה של הדמות נוסיף אירוע keyboard ונשייך לו את הפעולה set vertical speed.

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

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

platform

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

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

07th דצמ2010

יצירת משחק ב-Game Maker הוספת ירי

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

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

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

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

  • ירייה היא בעצם מופע של אוביקט שנע במהירות במסך, האוביקט אינו מוצב בחדר, הוא יופיע בפעולה יזומה של השחקן.
  • כיוון הירי צריך להשתנות לפי הכיוון אליו פונה האוביקט היורה
  • ירי לא מתבצע באופן רציף (כמו הליכה, או ריצה), אלא בהפסקות זמן קבועות.
  • בעת פגיעה באוביקט אחר או מחוץ לחדר יש להרוס את המופע של הירי.
  • כיוונים מוגדרים כמו זויות במעגל נגד כיוון השעון, ולכן ימינה=0, למטה=270, שמאלה=180 ולמעלה=90.

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

הגדרת משתנה עבור ירי

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

  1. הוסיפו אירוע יצירה לדמות הראשית
  2. הוסיפו פעולה של הגדרת משתנה can_shoot שערכו יהיה=1 (1 פירושו יכול לירות ו-0 פירושו לא יכול לירות). הגדרת משתנה נמצא בלשונית control של הפעולות.

can shoot

הגדרת משתנה עבור כיוון

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

direction

כעת נוסיף את אירוע הירי.

יצירת אירוע ירי

במשחק הזה פעולת הירי תתבצע כאשר השחקן לוחץ על מקש הרווח כדי ליצור אירוע ירי נבצע שתי בדיקות, אחת – האם ניתן לבצע פעולת ירי, שתיים – לאיזה כיוון הדמות פונה.
הוסיפו אירוע לחיצה על מקש הרווח לדמות הראשית לאירוע זה הוסיפו פעולה של בדיקת המשתנה can_shoot לערך 1  (כלומר הפעולות הבאות יתבצעו אם המשתנה can_shoot=1).
מיד אח"כ הוסיפו בדיקה של המשתנה dir. אם dir=1 הוסיפו את הפעולות הבאות לאירוע ירי, כיוון שמדובר במספר פעולות נתחום אותן בבלוק פעולות:

create moving instance של אוביקט הירי

  1. בשדה object בחרו את אוביקט הירייה
  2. הגדירו את ה-X וה-Y ל16 ו-16, כיוון שהדמות שלנו בגודל 32X32 והכדור יצא ממרכז הדמות.
  3. סמנו V בשדה Relative אחרת הכדור יצא מנקודת 16X16 של החדר ולא של הדמות הראשית.
  4. בשדה speed הגדירו מהירות 30 לפחות ובשדה direction את הספרה 0, שהיא כאמור מסמלת את הכיוון ימין.

כך יראה חלון המאפיינים של הפעולה create moving:

create moving

שינוי המשתנה can_shoot ל-0 והוספת שעון מעורר

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

  1. שינוי ערך המשתנה can_shoot ל-0.
  2. הוספת פעולת שעון מעורר ל-5 צעדים, הגדירו את Alarm 0 ל-5 צעדים.
    alarm

יותר מאוחר נוסיף אירוע שעון מעורר שמטרתו להחזיר את ערך המשתנה can_shoot ל-1.

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

  • הוספת אוביקט הירי כולל ארבעת השלבים המפורטים למעלה, כאשר השינוי היחיד הוא הכיוון של אוביקט shot.
  • שינוי המשתנה can_shoot
  • הוספת שעון מעורר Alarm 0

הוספת אירוע שעון מעורר

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

לאירוע זה הוסיפו פעולת הגדרת ערך המשתנה can_shoot בחזרה ל-1.

כך יראה חלון הפעולות של אירוע הקשה על מקש הרווח לאחר יצירת כל הפעולות של אירוע לחיצה על מקש הרווח:

shoot to direction

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

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

כדי לשפר את אפקט הירי, הוסיפו סאונד לפעולת הירייה וסאונד לפעולת ההתנגשות.

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

03rd דצמ2010

יצירת משחק בסיסי ב-Game Maker חלק 3

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

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

בפוסט הזה נוסיף בונוסים וניקוד.

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

  1. השמעת סאונד מתאים
  2. מחיקת המופע של הבונוס מהחדר
  3. הוספת ניקוד

הוספת ניקוד

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

לאירוע Game Start נוסיף פעולת Set score ונשאיר את הערך של הניקוד על 0, כיוון שזה הניקוד לתחילת המשחק.

בפעולה של Set the score caption נשנה את האפשרות של show score מ-don't show ל-show.

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

הוספת סאונד

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

מחיקת המופע של הבונוס

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

שינוי ערך הניקוד

בהוספת הפעולה Set Score יש להגדיר את ערך new score ל[+10] וחשוב לסמן V באפשרות Relative כיוון שהוספת הניקוד היא תמיד יחסית לניקוד שהיה קודם.

set score

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

קובץ המשחק המעודכן להורדה

עמודים:12»