איך ליצור קובייה ב- 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]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

איור תכנון משחק
מקור: http://toothpastefordinner.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

*הפוסט עודכן ביוני 2018

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

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

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

אוביקט המטוס

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

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

 הרצת המשחק

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

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

 

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

 

איך ליצור טיימר (Timer) ב- Game Maker

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

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

מה צריך בשביל להגביל את המשחק בדקה?

אוביקט Timer

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

ניצור אוביקט בשם timer

אירוע Create

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

לאירוע זה נוסיף את הפעולות הבאות:

1. יצירת משתנה בשם time ונגדיר לו ערך 60 (כיוון שבכל דקה יש 60 שניות).

var time

2. הפעלה של שעון (alarm) לאחר 30 צעדים (שזה שווה ערך לשנייה אחת)

alarm

אירוע שעון – Alarm

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

מוסיפים לאירוע שעון את הפעולות הבאות (שימו לב, יש להוסיף אותו ל- alarm0 שהוא אותו שעון שמופיע באירוע create):

הפחתה של 1 למשתנה time (שימו לב שאתם נותנים לו בדיוק את אותו השם שנתתם באירוע create). יש לסמן את התיבה relative כיוון שאנחנו רוצים שכל פעם תופחת שנייה מסך כל השניות הנותרות.

time-1

בדיקה של ערך משתנה time

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

בדיקה האם המשתנה קטן מאפס:

if time smaller than 0את הפעולות הבאות נתחום בבלוק:

1. הצגת הודעה למשתמש (כדי לא לסגור את המשחק בפתאומיות)

game over

2. סגירה של המשחק (נמצא בלשונית main2 בפעולות).

אם המשתנה אינו קטן מאפס:

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

alarm

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

alarm actions

הצגה של השניות על המסך

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

הוספת אירוע ציור Draw

לאירוע draw נוסיף פעולה Draw Variable שנמצא בלשונית control.

נציין איזה משתנה להציג – time וכן את המיקום שלו.

draw time

אני קבעתי x=100 ו- y=30, אבל כמובן תוכלו להגדיר את המיקום במקום המתאים לכם במסך.

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

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

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

 

מסכה ל-sprite ב-Game Maker

את הפוסט הזה אני כותבת בתשובה לשאלתו של ניר: "איך יוצרים mask לספרייט?"

מה זה מסכה (Mask) ומתי משתמשים בה?

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

מסובך? נסביר את זה כך, נניח שיש לכם דמות שנראית כך:

simple sprite

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

בדיקת התנגשות

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

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

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

simple sprite platform

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

simple sprite platform 2

 

איך עושים את זה? באמצעות Mask.

בסרטון הבא – מדריך קצר להוספת mask ל- sprite במשחק פלטפורמה פשוט.

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

 

advanced mode – מצב מתקדם

advanced mode או מצב עריכה מתקדם בתוכנת Game Maker ומיועד עבור מי שרוצה לעבוד עם התוכנה ברמה מתקדמת. חשוב לדעת, מצב מתקדם או מצב פשוט הם רק מצב של העבודה עם התוכנה ואינו מעיד על המשחק עצמו. ניתן לעבור ממצב מתקדם לפשוט בכל שלב ולהפך מבלי לפגוע במשחק. (למרות שתאלצו לסגור את התוכנה ולפתוח אותה מחדש כדי לעבור ממצב של Simple Mode ל- Advanced Mode).

Advanced Mode

אז מה כולל מצב מתקדם ואיך מפעילים אותו?

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

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

simple mode

הפעלה של מצב מתקדם

זו גם הדרך להפעיל את מצב מתקדם, עברו לFile ולחצו על האפשרות Advanced Mode. אם תלחצו של על התפריט – תראו שהפעם מופיע סימן V לשמאל האפשרות.

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

simple mode

לעומת Advanced Mode:

advanced mode

המצב בו השינוי מאוד משמעותי הוא בעריכה של מאפייני החדר, או ה- sprite. שימו לב להבדל במאפייני החדר (לא מופיעות הלשוניות: tiles, views):

room properties simple mode

ובמצב מתקדם:

room properties advanced mode

עכשיו, כל מי שפנה אלי בשאלה למה לא מופיעה הלשונית של views בחדר יודע שהוא פשוט נמצא במצב פשוט 😉

איך לעדכן את חלון העזרה (F1)

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

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

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

אם עדכנתם מידע בחלון – Game Information  ובכל זאת לא נפתח החלון כאשר אתם לוחצים על F1 במקלדת – זה כיוון שF1 לא מוגדר עבור חלון Game information במשחק.

איך להגדיר את F1 שיציג את המידע ב- Game Information

עברו ל- Global game settings:

global game settings

בחלון שנפתח בחרו באפשרות Other וודאו שמסומן V באפשרות להציג את F1 עבור Game Information

איך תיצרו משחק מחשב בעצמכם – מדריכים

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

יש לי רעיון למשחק!

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

תכנון המשחק

איך לתכנן מסכים ותפריטים

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

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

התוכנות המוצעות במאמר זה חוץ מ- Game Maker הן: Adventure Game Studio ו- WinterMute

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

שימו לב להגבלות בגרסת  Game Maker Studio Free

מדריכים צעד אחר צעד

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

הכרת תוכנת Game Maker – סרגל הכלים.

עבודה ב- Advanced Mode

יצירת חדר ושמירת קובץ המשחק

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

הוספת רקע לחדר (סרטון)

 מאפייני חדר ומעבר בין חדרים (כולל קובץ להורדה)

מעקב אחר דמות – view (כולל קובץ להורדה)

Time Line (כולל קובץ להורדה)

הוספת נתיב Path ושיוך נתיב לאוביקט (סרטון)

בדיקה של ביטוי והגדרת משתנה (כולל קובץ להורדה)

הצגת הניקוד במיקום מוגדר במסך (כולל קובץ להורדה)

שינוי מיקום אובייקט בלחיצה על המסך (כולל קובץ להורדה)

יצירת מפה מוקטנת

הסרת רקע בעורך התמונות

איך להוסיף טיימר (timer)

איך ליצור מסכה (Mask) לספרייט (כולל סרטון)

עריכה של רצועת תמונות

הגדרת עורך סאונד

 הוספת מידע / עזרה למשחק (סרטון)

איך ליצור קובייה (כולל קובץ המשחק להורדה)

איך להוסיף לחצן Pause למשחק (כולל קובץ המשחק להורדה)

איך לבדוק כמה אובייקטים נשארו במשחק (כולל קובץ המשחק להורדה)

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

שינוי תת תמונה להצגה – image_index (כולל קובץ המשחק להורדה)

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

איך ליצור אובייקט מתפוצץ? (כולל קובץ המשחק להורדה)

איך להוסיף מאפייני פיזיקה למשחק (Game Maker Studio)

הוספת חיים וניקוד למסך המשחק (Game Maker Studio)

 

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

יצירת משחק מחשב פשוט חלק א

יצירת משחק מחשב פשוט – חלק ב

מדריכים ליצירת משחק מחשב מלא

יצירת משחק בסיסי (כולל קובץ להורדה)

יצירת משחק בסיסי – הוספת התנגשות ופסילות (כולל קובץ להורדה)

יצירת משחק בסיסי – הוספת בונוסים ניקוד (כולל קובץ להורדה)

יצירת משחק בסיסי – הוספת ירי (כולל קובץ להורדה)

יצירת משחק פלטפורמה (כולל קובץ להורדה)

משחקי לוח / משחקי קופסה

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

 

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

איך תיצרו משחק מחשב בעצמכם – חלק 4

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

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

מתי נשתמש בתנועה לתמונת הרקע?

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

[youtube width="560" height="315" video_id="ySxM9AM932c"]

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

a scrolling shooter

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

איך תיצרו משחק מחשב בעצמכם – חלק 3

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

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

יצירת חדר

פתחו את תוכנת Game Maker ובסרגל הכלים לחצו על אייקון יצירת חדר (Create a Room). create a room

כעת יפתח חלון מאפייני החדר שיצרתם – room properties עם הלשוניות הבאות:

הלשוניות שמופיעות החלון המאפיינים הן:

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

settings – עבור הגדרות מאפייני החדר, כמו רוחב וגובה החדר/מסך

tiles – עבור ניהול אריחים בחדר (על כך אכתוב פוסט נפרד)

backgrounds – עבור הגדרות לתמונת רקע או צבע רקע לחדר

views – עבור הגדרת מראות (מצלמות) בחדר

 שינוי צבע רקע לחדר

עברו ללשונית background ולחצו על תיבת הצבע (ברירת המחדל היא אפור)

background color

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

background color table

שינוי גודל החדר

עברו ללשונית setting

שנו את רוחב החדר – width ל- 500

שנו את גובה החדר – hieght ל- 500

לסיום לחצו על סימן ה- V הירוק בקצה השמאלי העליון לשמירה וסגירה של החלון:

room settings

הרצה של המשחק

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

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

room

שמירת הקובץ

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

איך שומרים?  לחצו על אייקון save בסרגל הכלים 

יפתח חלון לקביעת שם ומיקום הקובץ. בחרו את המקום לשמירת הקובץ, אפשר על שולחן העבודה ותנו שם לקובץ. אני נתתי את השם my first game התוכנה תתן לקובץ את הסיומת המתאימה של game maker:

save gameלחצו על save לסיום.

שימו לב שברשימת הספריות, תחת הספרייה Rooms מופיע כעת קובץ בשם room0. בפוסט הבא נשנה את השם ומאפיינים נוספים.

על שולחן העבודה תוכלו לראות את הקובץ ששמרתם – נראה כך:

saved game

 

 

איך תיצרו משחק מחשב בעצמכם – חלק 2

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

סרגל הכלים

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

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

תיאור הפעולות בסרגל הכלים

תיאור האייקונים משמאל לימין:

new game – Create a new game  – יצירה של משחק חדש.

– Open an existing game – פתיחה של קובץ משחק קיים (קובץ עריכה)

 – Save the game – שמירת קובץ המשחק. מי שלא עבד על מחשב לפני שנות התשעים, אולי לא מכיר את התקליטון (floppy) ששימש לשמירה של קבצים עד 1.44MB (פעם זה הספיק!), מדיות האחסון השתנו מאז, אבל האייקון נשאר נאמן ל- floopy.

create exe – יצירת קובץ stand-alone executable – פורמט זה מאפשר לשחק במשחק שלך גם למי שלא מותקן אצלו Game Maker במחשב.

publish – publish – פרסום הקובץ ע"י העלאה שלו לאינטרנט

run – run the game – הרצה של המשחק

run debug – run the game in debug mode – הרצה של המשחק במצב של איתור באגים

– create a sprite – יצירה של ספרייט  (או ייבוא של קובץ מוכן)create sprite

create sound – create sound  – יצירה של סאונד (או ייבוא של קובץ מוכן)

 – create a background יצירה של רקע  (או ייבוא של קובץ מוכן)

create path – create a path – יצירת נתיב

create script – create a script – כתיבה או ייבוא של קטע קוד

 – create a font – יצירה של פונט

create time line – create time line – יצירה של (רצף פעולות על) קו זמן

create an object – create an object – יצירה של אוביקט

 create a room –  create a room – יצירה של חדר

 

ספריות הקבצים

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

כך נראית רשימת הספריות ביצירה של משחק חדש:

files

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

איך תיצרו משחק מחשב בעצמכם

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

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

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

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

שימו לב, המדריך מיועד לפיתוח משחק במחשב שמותקנת עליו מערכת הפעלה של Windows. ועכשיו לעבודה.

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

1. היכנסו לאתר Game Maker בכתובת: http://www.yoyogames.com/

2. בלשונית Game Maker לחצו על האפשרות Standard

game Make rSite

3. כעת יפתח מסך GameMaker for Windows ובו שתי אפשרויות: קנייה של גרסת ה- Standard או הורדה של גרסת  GameMaker 8.1 LITE. לחצו על הקישור של הורדת הגרסה החינמית. קובץ ההתקנה הוא מסוג exe. ושוקל 11.9 MB. שימו לב לאיזו ספרייה אתם מורידים את קובץ ההתקנה, כיוון שמשם תפעילו את ההתקנה.

4. לחצו על קובץ ההתקנה. יפתח חלון האזהרה הבא:

game Maker download

5. לחצו על Run

6.  כעת יפתח חלון הסכם רישוי. לחצו על I Agree.

game Maker Run

7.  בחלון בחירת מרכיבים להתקנה שיפתח לחצו על Next.

game Maker Run2

8. כעת יפתח חלון לבחירת המיקום בו יותקנו קבצי התוכנה:

game Maker Run3אין צורך לשנות את המיקום שנבחר ולכן פשוט לחצו על Install להתחלת ההתקנה.

9. ההתקנה אורכת מספר שניות בלבד, שימו לב בחלון התקדמות ההתקנה תקבלו בסיום ההתקנה את ההודעה Installation Complete:

game Maker Run4לחצו שוב על Next.

10. יפתח חלון סיום ההתקנה. שימו לב בחלון זה מסומנת האפשרות Start GameMaker, ולכן בלחיצה על Finish תיפתח התוכנה. אם אינם רוצים לפתוח את התוכנה בסיום ההתקנה, בטלו את הסימון:

game Maker Run5

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

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

11. בתוך התוכנה יופיע החלון עם ההצעה לשדרג את התוכנה לגרסת ה- Standard:

gameMaker

אין צורך ללחוץ על הקישורים בחלון זה. פשוט סגרו אותו ע"י לחיצה על X.

 אלו הם כל השלבים בהורדה והתקנה של תוכנת Game Maker.

בפוסט הבא – נכיר את סרגל הכלים ומאפייני התוכנה.