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

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

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

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

צור משחק פשוט

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

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

צור קובץ חדש בשם simple-game.py ולהגדיר א מִשְׂחָק כיתה שיורשת מ מִקמֶרֶת. חַלוֹן. הגדר את ממדי המסך, אתחל את עמדות הנגן והפלטפורמה והטמיע את פונקציונליות הציור הבסיסית. ה שחקן יכול לנוע ימינה ושמאלה באמצעות מקשי החצים.

הנה הפלט:

הוספת תיבת דיאלוג

instagram viewer

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

הוסף דיאלוג_פעיל דגל ל מִשְׂחָק class, המציין אם תיבת הדו-שיח צריכה להופיע. בתוך ה on_update שיטה, לבדוק התנגשות אויב, ואם זוהה, הגדר דיאלוג_פעיל ל נָכוֹן.

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

צור קובץ חדש בשם dialogue-box.py והוסיפו את הקוד עם העדכונים הבאים:

# בתוך כיתת המשחק

מעמדמִשְׂחָק(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי):
# ...

self.dialogue_active = שֶׁקֶר

defon_update(עצמי, זמן_דלתא):
אם self.check_enemy_collision():
self.dialogue_active = נָכוֹן

defon_draw(עצמי):
# ...

אם self.dialogue_active:
self.draw_dialogue_box()

defcheck_enmy_collision(עצמי):
player_radius = 25
distance_x = abs (self.player_x - self.platform_x)
distance_y = abs (self.player_y - self.platform_y)
combined_radius = player_radius + 25

אם distance_x < רדיוס_שילוב ו distance_y < רדיוס משולב:
לַחֲזוֹרנָכוֹן
אַחֵר:
לַחֲזוֹרשֶׁקֶר

defdraw_dialogue_box(עצמי):
טקסט = "שלום, שחקן! מה שלומך?"

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, לבן)

arcade.draw_text (טקסט, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, שחור, font_size=16,
anchor_x="מֶרְכָּז", anchor_y="מֶרְכָּז")

להלן הפלט:

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

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

# בתוך כיתת המשחק

מעמדמִשְׂחָק(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי):
# ...

self.dialogue_active = שֶׁקֶר
self.dialogue_messages = [
"שלום, שחקן! מה שלומך?",
"מזג אוויר יפה היום, לא?",
"היזהרו מהאויבים שאורבים קדימה!"
]
self.dialogue_index = 0

defdraw_dialogue_box(עצמי):

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, לבן)

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, שחור, font_size=16,
anchor_x="מֶרְכָּז", anchor_y="מֶרְכָּז")

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

הוספת כפתור

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

# בתוך כיתת המשחק

מעמדמִשְׂחָק(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי):
# ...

self.dialogue_active = שֶׁקֶר

self.dialogue_messages = [
"שלום, שחקן! מה שלומך?",
"מזג אוויר יפה היום, לא?",
"היזהרו מהאויבים שאורבים קדימה!"
]

self.dialogue_index = 0

defon_mouse_press(עצמי, x, y, לחצן, משנה):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

אם self.dialogue_active:
אם כפתור == ארקייד. MOUSE_BUTTON_LEFT:
self.dialogue_index = אינדקס

defdraw_dialogue_box(עצמי):
# ...

arcade.draw_text("הַבָּא", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
שחור, font_size=16, anchor_x="מֶרְכָּז", anchor_y="מֶרְכָּז")

תוסיף את ה on_mouse_press שיטה ל מִשְׂחָק מעמד. כאשר הדיאלוג פעיל ואתה לוחץ על לחצן העכבר השמאלי, שיטה זו מגדילה את dialogue_index כדי להציג את ההודעה הבאה ב- הודעות_דיאלוג רשימה. ה % len (self.dialogue_messages) מבטיח שהאינדקס יעבור לתחילת הרשימה כשהיא מגיעה לסוף.

כולל תכונות נוספות

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

אפשרויות מרובות

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

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

דיוקנאות דמויות

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

אנימציית טקסט

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

אפקטים קוליים

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

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

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

נקה ממשק משתמש

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

קול דמות עקבי

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

רלוונטיות למשחקיות

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

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

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

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

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