פתח סביבת משחק סוחפת עבור משחקי Godot שלך עם אנימציות שובות לב.
בפיתוח משחקים, אנימציות ממלאות תפקיד מכריע ביצירת חוויה מרתקת וסוחפת עבור השחקנים. הוספת אנימציות דו-ממדיות למשחק Godot שלך יכולה להחיות את הדמויות והסביבות שלך, ולהפוך אותן ליותר מושכות ויזואלית ואינטראקטיביות.
למרבה המזל, Godot מספקת כלים ותכונות רבי עוצמה ליצירה ושליטה בהנפשות דו-ממדיות בקלות.
הגדרת משחק Godot
כדי להתחיל, הגדר סצנת משחק דו-ממדית בסיסית ב מנוע המשחק Godot. צור סצנה חדשה והוסף א KinematicBody2D צומת כדמות השחקן. בתוך ה KinematicBody2D, הוסף CollisionShape2D עם צורת מלבן המייצגת את גבולות ההתנגשות של השחקן.
הקוד המשמש במאמר זה זמין כאן מאגר GitHub והוא בחינם עבורך לשימוש תחת רישיון MIT.
בנוסף, הוסף AnimatedSprite צומת לטיפול בהנפשות של השחקן. יתר על כן, ודא שאתה ממפה את פעולות הקלט הבאות שלך מפת קלט:
לאחר מכן, כתוב את קוד ה-GDScript כדי לשלוט בתנועת הנגן. צרף את התסריט הבא ל- KinematicBody2D צוֹמֶת:
מרחיב את KinematicBody2Dconst SPEED = 200func _physics_process (delta): var velocity = Vector2.ZERO if Input.is_action_pressed("move_left"): velocity.x -= SPEED if Input.is_action_pressed("move_right"): velocity.x += SPEED if Input.is_action_pressed("move_up"): velocity.y -= SPEED if Input.is_action_pressed("move_down"): velocity.y += SPEED velocity = תנועה_והחלקה (מהירות)
סקריפט זה מגדיר מהירות קבועה עבור הנגן ומאפשר לו לנוע שמאלה, ימינה, למעלה ולמטה באמצעות מקשי החצים או WASD.
הוספת SpriteSheet ב- AnimatedSprite
כעת, הגדר את AnimatedSprite להשתמש בגיליון ספרייט להנפשות. בחר את AnimatedSprite צומת ונווט אל מסגרות קטע בכרטיסיית המאפיינים של הצומת. כאן, לחץ על SpriteFrames חדשות לַחְצָן.
עבור אל SpriteFrames לשונית הממוקמת בתחתית עורך Godot. בתוך ה SpriteFrames לשונית, לחץ על אנימציה חדשה לַחְצָן. צור אנימציות כגון לָלֶכֶת ו לְהִתְבַּטֵל על ידי הוספת פריימים מתאימים לכל אנימציה.
בנוסף, יש לך אפשרות ליצור אנימציות אחרות, כגון צילום, קפיצה וטיפוס למשחק פלטפורמה. לאחר מכן, לחץ על הוסף מסגרות מ-SpriteSheet לחצן לחילוץ אוטומטי של מסגרות בודדות מגיליון הספרייט.
שליטה באנימציות באמצעות GDScript
כעת, לאחר הגדרת ההנפשות שלך, אתה יכול לשלוט בהן באופן תכנותי באמצעות GDScript.
הפעלה ועצירה של האנימציה
שליטה בהשמעה של אנימציות חיונית כדי לספק חוויות דינמיות ואינטראקטיביות במשחק שלך. ה AnimatedSprite node ב-Godot מציע שיטות לשחק ולהפסיק אנימציות בהתאם להיגיון המשחק שלך.
האריך את KinematicBody2D צומת ולטפל בבקרת האנימציה בתוך _תהליך_פיזיקה פוּנקצִיָה. אתה יכול להשתמש ב play_animation ו stop_animation קלט כדי להפעיל את פעולות ההנפשה המתאימות.
מרחיב את KinematicBody2Dfunc _physics_process (delta): # הפעל את האנימציה אם Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # עצור את האנימציה ואפס לפריים הראשון אם Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
על ידי מיפוי פעולות הקלט המתאימות, אתה יכול לספק לשחקנים שליטה על השמעת האנימציה במשחק שלך.
לדוגמה, אתה יכול לאגד את play_animation פעולה ללחיצת כפתור או אירוע מסוים במשחק שלך, מה שמאפשר לשחקן להפעיל רצף אנימציה ברגע רצוי. בנוסף, אתה יכול למצוא מוזיקה ללא זכויות יוצרים לשחק בזמן שהאנימציה פועלת.
באופן דומה, אתה יכול להפעיל את stop_animation פעולות כדי להפסיק לחלוטין את האנימציה.
על ידי שילוב מנגנוני בקרת אנימציה אלה, אתה יכול להוסיף עומק ואינטראקטיביות להנפשות של המשחק שלך, ליצור חוויות מרתקות וסוחפות יותר עבור השחקנים שלך.
סיבוב האנימציה
סיבוב האנימציה יכול להוסיף עניין ויזואלי וגיוון למשחק שלך. אתה יכול לסובב את ה- AnimatedSprite צומת כדי לשנות את כיוון האנימציה. אתה יכול להחיל את הסיבוב במעלות באמצעות להתחלף() שיטה.
מרחיב את KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # סובב את האנימציה ב-45 מעלות בכיוון השעון $AnimatedSprite.rotate (deg2rad (45))
כאשר אתה לוחץ על הכפתורים הקשורים ל- rotate_animation (תוכל להגדיר פעולה זו במפת הקלט שלך), ה להתחלף() השיטה נקראת על AnimatedSprite צוֹמֶת. הוא מסובב את הצומת ב-45 מעלות בכיוון השעון באמצעות deg2rad() להמיר את המעלות לרדיאנים.
זכור שזה יחיל סיבוב על כולו AnimatedSprite צומת, כולל כל הפריימים של האנימציה. לכן, אם ברצונך לסובב רק מסגרות ספציפיות, ייתכן שיהיה עליך לפצל אותן לנפרדות AnimatedSprite צמתים או להשתמש בטכניקות אחרות כגון היפוך פריימים בודדים.
הפוך את האנימציה
הפיכת האנימציה אופקית או אנכית יכולה להיות שימושית לשקף שינויים בכיוון הדמות. בגודו, ה AnimatedSprite הצומת מספק מאפיינים לשלוט בהיפוך.
כדי להפוך את האנימציה אופקית, הגדר את flip_h רכוש ה AnimatedSprite ל נָכוֹן. זה ישקף את ההנפשה לאורך הציר האופקי. באופן דומה, הגדרת ה flip_v רכוש ל נָכוֹן ישקף את האנימציה לאורך הציר האנכי.
מרחיב את KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # או $AnimatedSprite.flip_v = true עבור היפוך אנכי
אם הנגן לוחץ על flip_animation פעולת קלט ואז הגדר את flip_h רכוש ה AnimatedSprite ל נָכוֹן. פעולה זו תהפוך את האנימציה לרוחב.
שימוש באותות ב- AnimatedSprite
בנוסף לשליטה באנימציות באופן פרוגרמטי, Godot מספקת מערכת אירועים עוצמתית הנקראת אותות. אותות מאפשרים לך להגיב לאירועים או שינויים ספציפיים המתרחשים במהלך ביצוע המשחק שלך.
במקרה של AnimatedSprite, ישנם שני אותות חשובים שבהם אתה יכול להשתמש: animation_finished() ו frame_changed().
1. אות animation_finished()
ה animation_finished() האות נפלט כאשר האנימציה מגיעה לפריים האחרון, בין אם במהלך השמעה בודדת או כאשר היא עוברת לולאה. אות זה שימושי כאשר ברצונך לבצע פעולות או להפעיל אירועים כאשר אנימציה מסתיימת.
מרחיב את KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # בצע פעולות או הפעלת אירועים print("אנימציה סיימתי!") # קוד נוסף כאן...
חבר את animation_finished() אות של AnimatedSprite אל ה _on_animation_finished() שיטה באותו סקריפט תוך שימוש ב- לְחַבֵּר() פוּנקצִיָה.
כשהאנימציה מסתיימת לשחק, אתה יכול להפעיל לוגיקה מותאמת אישית או להפעיל פונקציות אחרות באמצעות _on_animation_finished() שיטה.
2. אות frame_changed()
ה frame_changed() אות נפלט בכל פעם שהמסגרת הנוכחית של האנימציה משתנה. זה יכול להתרחש כאשר האנימציה מתנגנת או כאשר אתה משנה את המסגרת באופן תוכנתי. אתה יכול להשתמש באות זה כדי לזהות שינויים במסגרת ולהגיב בהתאם.
מרחיב את KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # בצע פעולות על סמך המסגרת הנוכחית var currentFrame = $AnimatedSprite.frame print("Current frame: ", currentFrame) # קוד נוסף כאן...
חבר את frame_changed() אות של AnimatedSprite אל ה _on_frame_changed() שיטה באותו סקריפט. כאשר המסגרת משתנה, תוכל לגשת למסגרת הנוכחית באמצעות ה- _on_frame_changed() שיטה ולבצע פעולות או לוגיקה על סמך ערך המסגרת.
על ידי שימוש באותות, אתה יכול להגיב לאירועי אנימציה כמו השלמה או שינויים בפריים ולשלב התנהגויות דינמיות או להפעיל פעולות ספציפיות במשחק שלך.
הפוך את משחקי Godot למרתקים יותר באמצעות אנימציות
הוספת אנימציות דו-ממדיות למשחקי Godot שלך יכולה לשפר מאוד את חווית השחקן הכוללת. אנימציות מעוררות חיים בדמויות, והופכות את התנועות והפעולות שלהן למושכות יותר מבחינה ויזואלית. על ידי שילוב אנימציות לפעולות שונות כגון הליכה, ריצה, תקיפה וקפיצה, תוכלו ליצור סביבת משחק דינמית וסוחפת.
יתר על כן, אתה יכול גם להשתמש באנימציות כדי לספק משוב חזותי לנגן. משוב זה עוזר להפוך את המשחק למושך יותר ומגיב יותר, ומשפר את תחושת השליטה והמעורבות של השחקן.