30th ספט2012

sprite index – אינדקס של ספרייט

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

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

Subimages – תת תמונה

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

איך נראה רצף התמונות של ספרייט?

 

היכנסו לספרייט כלשהו על ידי לחיצה על אייקון הספרייט

אם הספרייט מכיל יותר מתמונה אחת תוכלו לראות את מספר התמונות שהוא כולל מתחת לגודל התמונה – Number of subimages.

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

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

edit sprite

כדי לערוך את התמונות או לשנות את הסדר שלהם לחצו על edit sprite:

edit_sprite

בחלון Sprite Editor תוכלו לראות את כל תתי התמונות של ספרייט זה:

sprite editor

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

שינוי של סדר התמונות

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

edit_sprite_move

 

עצירה של הרצת תתי התמונות בספרייט –  image_speed

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

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

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

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

Set variable image_speed=0
פעולה זו עוצרת את ההרצה האוטומטית של תתי התמונות ומציגה את התמונה הראשונה בלבד.

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

image_speed

 

 שינוי תת תמונה להצגה – image_index

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

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

2. נוסיף לכל כפתור אירוע לחיצה בעכבר – השתמשו באירוע Left Released

3. לאירוע זה הוסיפו פעולה של הגדרת משתנה ושנו בהגדרה של המשתנה במקום self ל-object ובחרו את האובייקט של הדמות שיצרתם. בשדה variable הגדירו את המשתנה image_index  ובשדה value בחרו את המספר עבור תת התמונה. במקרה שלי תמונת הבן היא 0 ותמונת הבת היא 1.

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

image_index

 

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

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

כך יראה המשחק:

כרגיל, אני מצרפת את קובץ המשחק בפורמט gmk להורדה (14kb).

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

15th ינו2012

משימה לטבלת אלופים לשבוע 15/1-20/1

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

משימת האלופים לשבוע 15/1-20/1, עבור תלמידי ח4 בחטיבת ביינים דורות – הפוסט הזה בשבילכם, אבל התרגיל הזה יכול להתאים לכל מי שרוצה לתרגל את הנושא של Time Line ונתיבים.

1. צרו קובץ משחק חדש ובו אוביקט של כדור (תוכלו להשתמש בספרייטים של game maker). שימו לב שאתם יוצרים שני ספרייטים עבור האוביקט בשני צבעים שונים. ביצירת האוביקט השתמשו באחד מהצבעים שיצרתם.

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

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

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

קובץ התרגיל לא יעלה על 100K. את הקובץ יש לשלוח אלי במייל עד ליום רביעי ב- 23:30.

בהצלחה!

07th נוב2011

מסכה ל-sprite ב-Game Maker

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

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

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

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

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

simple sprite

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

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

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

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

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

simple sprite platform

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

simple sprite platform 2

 

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

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

 

 

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

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

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

27th נוב2010

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

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

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

יצירת בסיס למשחק

במשחק הבסיסי יהיו האלמנטים הבאים:

דמות ראשית

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

דמות אויב

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

  • השמעת סאונד
  • הקפצת הדמות הראשית לנקודת ההתחלה
  • הורדת החיים ב-1

חיים

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

בונוסים

כל בונוס שהדמות הראשית אוספת, תזכה ב-10 נקודות וישמע סאונד מתאים

ניקוד

ולכן אנחנו צריכים גם ניקוד, שמתחיל ב-0.

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

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

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

אז כמה ספרייטים אנחנו צריכים?

4 לדמות הראשית (הקפידו לשמור אותם בתיקייה נפרדת)

1 לדמות האויב (כמובן שאפשר יותר, אבל אנחנו נתחיל בזה)

1 לבונוס

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

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

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

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

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

יצירת סאונד

לחצו על אייקון יצירת סאונד ואח"כ על Load sound. במסך שיפתח בחרו אחד מקבצי הסאונד, אני בחרתי את beep1 וקראתי לו coin1, כיוון שהוא יהיה הסאונד שישמע כאשר הדמות תאסוף מטבע, ואת הסאונד boomshot עבור ההתקלות עם האויב.

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

my First Game screen1

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

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

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

1. תנועה

כדי שהדמות תזוז שמאלה, נוסיף אירוע לחיצה key press left ונשייך לו את הפעולה move fixed ע"י גרירה של האייקון לחלון ה-actions. (פעולה זו נמצאת בלשונית move של הפעולות). במאפייני התנועה נציין תנועה שמאלה ומהירות 3.

move left

2. שינוי ספרייט

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

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

change sprite

3. פעולת עצירה

כדי שהדמות לא תמשיך לזוז כאשר אנחנו מפסיקים ללחוץ על מקש החץ במקלדת, אנחנו צריכים פעולת עצירה. נוסיף אירוע key release left ונשייך לו פעולה move fixed. הפעם במאפיינים נבחר את הריבוע המרכזי, שמסמל עצירה ונשאיר את המהירות על 0.

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

stop

יש לבצע את כל הפעולות בסעיפים 1-3 עבור כל הכיוונים.

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

main character

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

נחזור לפעולות. מה צריך כדי להחזיר את הדמות הראשית מהצד השני?

4. אירוע outside room

נוסיף את האירוע outside room שנמצא בקטגוריה other של האירועים ונשייך לו את הפעולה wrap screen שנמצאת בלשונית move. שימו לב, יש לבחור באפשרות in both directions, כיוון שאנחנו רוצים שהדמות תוכל להיכנס חזרה לחדר מכל הצדדים.

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

הרצה של המשחק

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

קובץ gmk הכולל את כל השלבים להורדה.

בפוסט הבא – התנגשות עם דמות אויב.

21st ספט2010

הסרת רקע בעורך תמונות של Game Maker

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

אם אתם עדיין עובדים עם Game Maker בגרסה 7.0 (לא ברור לי למה, כיוון שגירסה 8.0 תומכת גם במשחקים שפותחו בגרסה 7.0) תעברו מהר לגרסה 8.0 של Game Maker.

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

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

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

אז איך עושים את זה? פשוט. שלושה שלבים.

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

שלב 1 – בחירת התמונות מרצועה

מרצועת התמונות המצורפת בחרתי את 8 התמונות בשורה הראשונה. (שימו לב הגובה והרוחב של התמונות לא זהה בכל שורה) הסבר מלא על עריכה של רצועת תמונות (strip).

scott strip

לאחר לחיצה על OK נקבל את החלון הבא שבו הרקע הוא עדיין ורוד:

strip edit

שלב 2 – מחיקת צבע נבחר

בתפריט יש לבחור בלשונית Images באפשרות Erase a Color:

erase a color

שלב 3 – דגימת צבע

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

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

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

erase a color

אם נרצה לבטל צבע נוסף, נצטרך לבצע שוב את שלבים 2+3, כלומר לשמור את השינויים ושוב לבחור בתפריט את Erase a Color, לא ניתן למחוק שני צבעים בפעולה אחת.

הפעולה תחול על כל סדרת התמונות הקיימות באותו Sprite:

edit strip

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

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

נתראה בפסטיבל.

22nd אוג2010

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

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

אם אתם צריכים תמונות לדמות עבור המשחק שלכם ואתם לא יודעים או לא רוצים ליצור את הגרפיקה בעצמכם, תוכלו לייבא קבצים מוכנים או ליצור דמות מקובץ strip. מה זה קובץ strip? זוהי רצועה שמכילה את תמונות ה sprite-ים כקובץ אחד.

דוגמאות לקבצים כאלו אפשר למצוא באתר YOYO Games, בקטגוריה Resources ובחיפוש של sprite-ים באינטרנט. כאשר אתם מבצעים חיפוש באינטרנט, הוסיפו את המילה png, במקרה שאתם רוצים תמונות ל- Game Maker 8.0 על מנת שבתוצאות תקבלו תמונות עם רקע שקוף.

ב-Game Maker ניתן לערוך strip-ים ולגזור מהם חלק מהתמונות כדי ליצור sprite.

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

לצורך הדוגמא אני אשתמש ב-strip שהורדתי מאתר YOYO Games, בקטגוריה Resources. שימו לב, לא לשכוח לתת קרדיט אם נדרש.

strip

במקרה הזה הקרדיט מגיע למשתמש shirsakbc.

השלב הראשון הוא ליצור sprite ע"י לחיצה על האייקון create sprite  בסרגל הכלים.

לאחר שיפתח חלון האפשרויות של ה-sprite יש לבחור באפשרות Edit Sprite ולא Load Sprite כדי לקבל את האפשרויות של עריכה מ-strip.

בחלון עריכת sprite שיפתח יש לבחור בלשונית file  באפשרות Create from strip,  שלחיצה עליה תפתח חלון בחירת תמונה.

Create Sprite

התמונה שנבחרה תוצג כך:

Loading a strip

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

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

number of images – מספר התמונות לחתוך מהרצועה כולה.
Images per row – כמה תמונות לחתוך מכל שורה.
Image width – רוחב של תמונה בודדת.
Image height – גובה של תמונה בודדת.
Horizontal cell offset – (קיזוז אופקי) כמה תמונות צריך לדלג אופקית.
Vertical cell offset – (קיזוז אנכי) כמה תמונות צריך לדלג במאונך.
Horizontal pixel offset (בפיקסלים) כמה פיקסלים לחתוך מהצד העליון.
Vertical pixel offset – (בפיקסלים) כמה פיקסלים לחתוך מהצד השמאלי.
Horizontal separation – כמה פיקסלים יהיו המרווח בין תמונות בשורה.
Vertical separation – כמה פיקסלים יהיו המרווח בין תמונות בטור.

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

בדוגמא הזו בחרתי 4 תמונות, כאשר הרוחב של כל אחת הוא 26 פיקסלים והגובה נשאר 32.

strip edit

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

show preview

שימו לב שע"י סימון V בשדה Show Preview ניתן לראות איך תראה הדמות בתנועה. שדה speed במסך הזה מיועד רק עבור התצוגה ואינו המהירות האמיתית של הדמות, אותה יש לקבוע בעריכה של האוביקט.