06th נוב2011

advanced mode – מצב מתקדם

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

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 בחדר יודע שהוא פשוט נמצא במצב פשוט 😉

17th ספט2011

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

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

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

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

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

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

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

a scrolling shooter

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

14th ספט2011

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

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

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

בפוסט זה ניצור חדר ונכיר את המאפיינים של חדר – 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

 

 

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 מטבעות.

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

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

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

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

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

27th נוב2010

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

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

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

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

ועכשיו – התנגשות עם דמות אויב.

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

הגדרת חיים

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

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

score

אוביקט מנהל לא צריך ייצוג גרפי ולכן לא יהיה לו sprite.

ל-Game Maker יש אירוע עבור מצב שבו אין יותר חיים, גם הוא נמצא באירועים תחת הקטגוריה other ונקרא no more lives. אם לא נגדיר מה קורה כשאין יותר החיים, החיים ימשיכו לרדת ב-1 בכל פעם שיתרחש אירוע התנגשות אפילו מתחת לאפס.
אנחנו לא רוצים שמצב כזה יקרה, לכן נוסיף לאוביקט מנהל אירוע no more lives ונשייך לו פעולה של סוף המשחק End Game שנמצא בלשונית main2.

כך יראה האוביקט ובו הגדרת החיים:

manager object

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

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

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

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

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

2. השמעת סאונד, ביחרו את הסאונד שהגדרתם עבור ההתנגשות

3. הורדה של החיים ב-1. שימו לב, יש לסמן V בשדה Relative, אחרת ערך החיים יוגדר מחדש ל-1, במקום להוריד מכמות החיים 1.

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

collision

הגדרת תנועה לדמות האויב

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

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

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

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

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

בפוסט הבא – הוספת בונוסים וניקוד.

22nd נוב2010

הצגת הניקוד במסך במיקום מוגדר

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

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

איך עושים את זה? לשם כך נשתמש בפקודה draw.

הגדרת פונט

חשוב לפני ביצוע הפעולות ליצור פונט חדש – קליק ימני על תיקיית הפונטים ובחירה ב – Create Font.

בחלון האפשרויות של הפונט יש לבחור את סוג הפונט וגודל הפונט.

כדאי לתת שם לפונט שיתאר את מטרתו, למשל ScoreFont, או תיאור של הפונט עצמו, למשל ArialBold12, זה תמיד עוזר לי לדעת איך הפונט יראה.

יצירת אוביקט

יש ליצור אוביקט (ללא sprite) עבור הניקוד.

1. בתיקיית objects ניצור אוביקט חדש בשם: "objectScore"

2. לאוביקט יש להוסיף אירוע מסוג Draw

3. לאירוע יש להוסיף את הפעולות (actions) הבאות:

set font – נמצא בלשונית Draw ולבחור את הפונט שיצרנו קודם ScoreFont

set the color – גם נמצא בלשונית Draw ולבחור את הצבע, שימו לב, שיהיה צבע ניגודי לרקע עליו ימוקם הטקסט.

Draw score בלשונית Score עדכנו את האפשרויות לפי:

X= מיקום על ציר הרוחב Y= מיקום על ציר הרוחב, למשל אם נרצה שהניקוד יופיע בקצה השמאלי העליון של החדר נציין עבור X=0, Y=0

שדה caption הוא הטקסט שיופיע עבור הניקוד, כדאי להשאיר את ברירת המחדל "Score:".
אם אפשרות Relative מסומנת, אז המיקום של האוביקט יהיה יחסית להכין שתמקמו את האוביקט בחדר בפועל, אם האפשרות לא תהיה מסומנת מיקום האוביקט יהיה בדיוק ב-X, Y שציינתם.

score

מיקום האוביקט בחדר

1. פתחו את החדר שבו אתם רוצים להציג את הניקוד ובלשונית objects בחרו את אוביקט הניקוד, objectScore.

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

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

05th נוב2010

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

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

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

שלב ראשון – יצירת sprite לאוביקט

לחצו על אייקון יצירת ספרייט בסרגל העליון create a Sprite

בחלון מאפייני sprite לחצו על Load Sprite וטענו תמונה. אני בחרתי בתמונה burger.

שלב שני – יצירת אוביקט

create an Objectלחצו על איקון יצירת אוביקט בסרגל העליון

בחלון אפשרויות של האוביקט הגדירו את ה-sprite שיצרתם בשלב הראשון לאוביקט, במקרה הזה, את burger.

object

שלב שלישי – הגדרת אירוע ופעולות

הגדרת אירוע step

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

הגדרת פעולות

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

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

object Actions

כעת נוסיף את הפעולה שתקפיץ את האוביקט לנקודה בה נלחץ העכבר. פעולה מסוג jump to position  ונגדיר עבורה את מיקום ה-X ו-Y.

עבור מיקום ה-X נציין: mouse_x, עבור מיקום ה-Y נציין: mouse_y. אלו פרמטרים קבועים עבור מיקום לחיצה של העכבר במסך.

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

קובץ דוגמא להורדה.

26th אוק2010

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

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

אחד מהכלים המובנים בGame Maker הוא ה-view (מראה). בעזרת view ניתן להגדיר איזה חלק מהחדר יוצג במסך, באיזה גודל ובאיזה מיקום.

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

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

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

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

שלב 1 – עיצוב החדר

יצרתי חדר ברוחב של 640 פיקסלים וגובה 480 פיקסלים

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

כך נראה החדר:

view of room

שלב 2 – יצירת view

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

עברו ללשונית views. הדבר הראשון שנעשה זה לסמן V בתיבה Enable the use of Views.

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

view

view 1

  1. סמנו V בשדה Visible when room starts עבור view 0.
  2. כעת עברו ל view 1 וגם פה סמנו V בשדה Visible when room starts.
  3. ב-view 1 עלינו לשנות את המאפיינים View in room ו-Port on screen:

View in room קובע איזה חלק מהחדר יוצג בview.

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

W – מייצג את רוחב הview שיוצג, במקרה זה כל החדר ולכן 640

H מייצג את הגובה ובמקרה זה 480

Port on screen קובע היכן בחדר ימוקם הview ומה יהיה גודלו.

ה-X הוא 0 וה-Y הוא 300 (הערכים המדויקים של X ו-Y מופיעים בשורה התחתונה של חלון החדר עם מעבר העכבר על הנקודה המתאימה בחדר).

W – מייצג את רוחב הview שיוצג, במקרה זה 180

H מייצג את הגובה ובמקרה זה 190

Object following – מיועד למקרה שאנחנו רוצים שה view יעקוב אחר דמות מסוימת. במקרה זה לא רלוונטי ולכן נשאיר את הבחירה על no object.

עכשיו נשמור את החדר ונריץ את המשחק.

החדר שיתקבל יראה כך:

view room