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

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

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

הגדרת משחק Godot שלך

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

הקוד המשמש במאמר זה זמין כאן מאגר GitHub והוא בחינם עבורך לשימוש תחת רישיון MIT.

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

עַכשָׁיו, להוסיף תנועת אופי ואינטראקציה עם פלטפורמות באמצעות GDScript. החלף את סקריפט ברירת המחדל של הצומת CharacterBody2D בקוד הבא:

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

instagram viewer

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

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

הוספת תיבת הדו-שיח

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

אצלך CharacterBody2D script, הצג עוד כמה משתנים כדי לטפל בתיבת הדו-שיח והתוכן שלה:

var dialogue_box: Label
var close_button: Button
var dialogue_lines: Array = ["Hello, adventurer!", "Welcome to our village."]

var current_line: int = 0
var line_timer: float = 0

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

בתוך ה _מוּכָן פונקציה, צור ואתחול תיבת הדו-שיח:

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

הצגת טקסט דיאלוג

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

שנה את שלך _תהליך_פיזיקה פונקציה לטיפול בהצגת שורות דיאלוג:

if line_timer > 0:
line_timer -= delta
elif current_line < dialogue_lines.size():
show_next_dialogue_line()

קטע קוד זה בודק אם ה קו_טיימר גדול מ-0. אם כן, זה מקטין את הטיימר בערך הדלתא. אם הטיימר אינו פעיל, ויש יותר שורות דיאלוג להציג, הוא קורא ל- show_next_dialogue_line פוּנקצִיָה.

יישם את show_next_dialogue_line לתפקד באופן הבא:

func show_next_dialogue_line():
dialogue_box.text = dialogue_lines[current_line]
current_line += 1

# Display each line for 3 seconds
line_timer = 3.0

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

הוספת כפתור סגירה

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

ראשית, שנה את ה _מוּכָן פונקציה ליצירת כפתור סגירה ולצרף את הפונקציונליות שלו.

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

close_button = Button.new()
close_button.text = "Close"
close_button.position = Vector2(50, 30)
close_button.visible = false
close_button.pressed.connect(_on_close_button_pressed)
add_child(close_button)

קוד זה יוצר מופע של לַחְצָן מחלקה ומתאים אישית את המראה והמיקום שלו. זה גם מחבר את לחוץ אות ל _על_כפתור_סגור_לחוץ פוּנקצִיָה.

כעת יישם את _על_כפתור_סגור_לחוץ פוּנקצִיָה. בפונקציה זו, הגדר את הנראות של תיבת הדו-שיח וגם של לחצן הסגירה ל שֶׁקֶר. זה למעשה מסתיר את ממשק הדיאלוג מהשחקן.

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

func _on_close_button_pressed():
dialogue_box.visible = false
close_button.visible = false
current_line = 0

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

שיטות עבודה מומלצות למערכת הדיאלוג שלך

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

עקביות היא המפתח

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

קולות אופי מלאכה

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

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

בחירות משמעותיות

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

בדיקה ואיטרציה

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

עקביות ממשק משתמש

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

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

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

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

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