עבודה עם ספרייטים – המימד השני במשחק

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

ואילו הספרייט הזה הוא תמונה המחולקת לאוסף תמונות קטנות המרכיבות אנימציה של איש רץ:

במקרה הזה נשים לב שהתמונה מחולקת ל 6 עמודות ו 5 שורות המהוות סה”כ של 30 תמונות (מסגרות) קטנות. אם נציג את המסגרות הללו אחת אחרי השניה ברצף נקבל אשליה של אנימצית איש רץ.
בשפת SceneMax3D אנו טוענים אובייקט של ספרייט באופן הבא:

man is a RunningMan sprite

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

המחשב באופן אוטומטי חותך את התמונה ומציג רק את המסגרת הראשונה.
להרצת האנימציה של הספרייט נשתמש בפקודה play לדוגמא:

man.play (frames 0 to 29)

פקודה זאת מציגה את כל המסגרות בתמונה ברצף. ממסגרת מספר 0 ועד מסגרת מספר 29 וכך מתקבלת אשליה של תנועה.
במידה ונרצה להריץ את האנימציה שוב ושוב בלולאה, ניתן להוסיף את מילת המפתח loop בסוף הפקודה:

man.play (frames 0 to 29) loop

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

man.play (frames 0 to 29) for 5 seconds

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

man.play (frames 0 to 29 in 5 seconds) loop

בדוגמא זו ביקשנו מהמחשב להריץ את תמונות 0 עד 29 ב 5 שניות שזה פי 5 מברירת המחדל של שניה אחת.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *