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

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

יצירת דמות

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

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

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

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

אחד מהכלים המובנים ב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