Οι ρεαλιστικοί χαρακτήρες αλληλεπιδρούν, συνήθως μιλώντας μεταξύ τους. Φροντίστε να παρουσιάζετε τον διάλογό σας με προσιτό και συμπληρωματικό τρόπο.

Εάν το παιχνίδι σας διαθέτει χαρακτήρες, πιθανότατα θα θέλετε να συνομιλούν μεταξύ τους. Ένα σύστημα διαλόγου παρέχει διαδραστικές συνομιλίες, εξέλιξη της ιστορίας και ανάπτυξη χαρακτήρων. Η βιβλιοθήκη Python Arcade διευκολύνει την ενσωμάτωση ενός συστήματος διαλόγου στην υπάρχουσα βάση κωδίκων σας.

Με ένα σύστημα διαλόγου, μπορείτε να δημιουργήσετε συνομιλίες μεταξύ των χαρακτήρων του προγράμματος αναπαραγωγής και των χαρακτήρων που δεν παίζουν (NPC). Ο παίκτης μπορεί να επιλέξει απαντήσεις ή να πάρει αποφάσεις που επηρεάζουν την αφήγηση ή το αποτέλεσμα του παιχνιδιού.

Αυτό το σύστημα σάς επιτρέπει να δημιουργείτε συναρπαστικές ιστορίες και να δημιουργείτε δυναμικές αλληλεπιδράσεις, παρέχοντας μια πιο καθηλωτική εμπειρία παιχνιδιού.

Δημιουργήστε ένα απλό παιχνίδι

Για να ξεκινήσετε, δημιουργήστε ένα απλό παιχνίδι χρησιμοποιώντας τη βιβλιοθήκη Arcade. Αυτό θα χρησιμεύσει ως το θεμέλιο για την εφαρμογή του συστήματος διαλόγου.

instagram viewer

Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.

Δημιουργήστε ένα νέο αρχείο με όνομα simple-game.py και ορίστε α Παιχνίδι τάξη που κληρονομεί από στοά. Παράθυρο. Ορίστε τις διαστάσεις της οθόνης, αρχικοποιήστε τις θέσεις αναπαραγωγής και πλατφόρμας και εφαρμόστε τη βασική λειτουργία σχεδίασης. ο Ο παίκτης μπορεί να κινηθεί αριστερά και δεξιά χρησιμοποιώντας τα πλήκτρα βέλους.

Εδώ είναι η έξοδος:

Προσθήκη πλαισίου διαλόγου

Τώρα που έχετε μια βασική δομή παιχνιδιού, προσθέστε ένα πλαίσιο διαλόγου που εμφανίζεται όταν ο παίκτης συγκρούεται με έναν εχθρό. Μπορείτε να δημιουργήσετε ένα πλαίσιο διαλόγου χρησιμοποιώντας απλά σχήματα και να το εμφανίσετε στην οθόνη.

Πρόσθεσε ένα διάλογος_ενεργός σημαία στο Παιχνίδι κλάση, η οποία υποδεικνύει εάν πρέπει να εμφανίζεται το πλαίσιο διαλόγου. Στο on_update μέθοδος, ελέγξτε για σύγκρουση του εχθρού, και αν εντοπιστεί, ορίστε διάλογος_ενεργός προς την Αληθής.

Στο on_draw μέθοδο, καλέστε το draw_dialogue_box εάν ο διάλογος είναι ενεργός. ο draw_dialogue_box Η μέθοδος σχεδιάζει ένα ορθογώνιο ως φόντο του πλαισίου διαλόγου και εμφανίζει ένα μήνυμα κειμένου.

Δημιουργήστε ένα νέο αρχείο με όνομα dialoge-box.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

# Μέσα στην τάξη Παιχνιδιού

τάξηΠαιχνίδι(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
# ...

αυτο.διάλογος_ενεργός = Ψευδής

defon_update(self, delta_time):
αν self.check_enemy_collision():
αυτο.διάλογος_ενεργός = Αληθής

defon_draw(εαυτός):
# ...

αν self.dialogue_active:
self.draw_dialogue_box()

defcheck_enmy_collision(εαυτός):
παίκτη_ακτίνα = 25
distance_x = κοιλιακούς (self.player_x - self.platform_x)
distance_y = κοιλιακοί (self.player_y - self.platform_y)
συνδυασμένη_ακτίνα = player_radius + 25

αν απόσταση_χ < συνδυασμένη_ακτίνα και απόσταση_υ < συνδυασμένη_ακτίνα:
ΕΠΙΣΤΡΟΦΗΑληθής
αλλού:
ΕΠΙΣΤΡΟΦΗΨευδής

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_y="κέντρο")

Παρακάτω είναι η έξοδος:

Εμφάνιση κειμένου διαλόγου

Τώρα, μπορείτε να βελτιώσετε το σύστημα διαλόγου σας εμφανίζοντας δυναμικά μηνύματα κειμένου. Δημιουργήστε μια λίστα με συμβολοσειρές διαλόγου και επαναλάβετε μέσα από αυτές για να προσομοιώσετε μια συνομιλία. Κάθε φορά που εμφανίζεται το πλαίσιο διαλόγου, θα εμφανίζει ένα νέο μήνυμα.

# Μέσα στην τάξη Παιχνιδιού

τάξηΠαιχνίδι(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
# ...

αυτο.διάλογος_ενεργός = Ψευδής
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_y="κέντρο")

Εισάγετε τρεις νέες μεταβλητές: διάλογος_μηνύματα, διάλογος_ευρετήριο, και διάλογος_ενεργός. Η λίστα dialogue_messages περιέχει τα μηνύματα κειμένου που θα εμφανίσει το πλαίσιο διαλόγου. Το dialogue_index παρακολουθεί το τρέχον μήνυμα προς εμφάνιση. Κάθε φορά που εμφανίζεται το πλαίσιο διαλόγου, μπορείτε να αυξήσετε το παράθυρο διαλόγου για να εμφανιστεί το επόμενο μήνυμα.

Προσθήκη κουμπιού

Για να κάνετε το σύστημα διαλόγου πιο διαδραστικό, προσθέστε ένα κουμπί για να αλλάξετε το κείμενο διαλόγου όταν πατηθεί από τη συσκευή αναπαραγωγής. Δημιουργήστε ένα νέο αρχείο με όνομα multi-text.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

# Μέσα στην τάξη Παιχνιδιού

τάξηΠαιχνίδι(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
# ...

αυτο.διάλογος_ενεργός = Ψευδής

self.dialogue_messages = [
«Γεια σου παίκτρια! Πώς είσαι?",
«Ωραίος καιρός σήμερα, έτσι δεν είναι;»,
«Προσοχή στους εχθρούς που καραδοκούν μπροστά!»
]

self.dialogue_index = 0

defon_mouse_press(self, x, y, κουμπί, τροποποιητές):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

αν self.dialogue_active:
αν κουμπί == arcade. MOUSE_BUTTON_LEFT:
self.dialogue_index = ευρετήριο

defdraw_dialogue_box(εαυτός):
# ...

arcade.draw_text("Επόμενο", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
μαύρο, μέγεθος_ γραμματοσειράς=16, anchor_x="κέντρο", anchor_y="κέντρο")

Πρόσθεσε το on_mouse_press μέθοδος στο Παιχνίδι τάξη. Όταν ο διάλογος είναι ενεργός και πατάτε το αριστερό κουμπί του ποντικιού, αυτή η μέθοδος αυξάνει το διάλογος_ευρετήριο για να εμφανιστεί το επόμενο μήνυμα στο διάλογος_μηνύματα λίστα. ο % len (self.dialogue_messages) διασφαλίζει ότι το ευρετήριο τυλίγεται στην αρχή της λίστας όταν φτάνει στο τέλος.

Συμπεριλαμβανομένων πρόσθετων χαρακτηριστικών

Για να βελτιώσετε περαιτέρω το σύστημα διαλόγου, μπορείτε να εξετάσετε το ενδεχόμενο να προσθέσετε τις ακόλουθες πρόσθετες δυνατότητες:

Πολλαπλές επιλογές

Αντί για ένα μόνο μήνυμα, μπορείτε να παρέχετε πολλαπλές επιλογές για τη συσκευή αναπαραγωγής. Αυτό επιτρέπει στον παίκτη να επηρεάσει το αποτέλεσμα της συνομιλίας ή να λάβει αποφάσεις που επηρεάζουν την εξέλιξη του παιχνιδιού.

Για να το εφαρμόσετε αυτό, μπορείτε να τροποποιήσετε το draw_dialogue_box μέθοδο για να εμφανίσετε μια λίστα επιλογών και να χειριστείτε την επιλογή του παίκτη ανάλογα.

Πορτρέτα χαρακτήρων

Για να προσθέσετε οπτική αίσθηση στο σύστημα διαλόγων σας, μπορείτε να ενσωματώσετε πορτρέτα χαρακτήρων παράλληλα με το κείμενο. Κάθε χαρακτήρας μπορεί να έχει μια αντίστοιχη εικόνα ή sprite που τον αντιπροσωπεύει κατά τη διάρκεια της συνομιλίας. Η εμφάνιση πορτρέτων χαρακτήρων μπορεί να βοηθήσει τους παίκτες να αναγνωρίσουν τον ομιλητή και να προσθέσουν βάθος στην εμπειρία αφήγησης.

Κινούμενα σχέδια κειμένου

Μπορείτε να κάνετε κίνηση του κειμένου για να το κάνετε πιο ελκυστικό οπτικά. Για παράδειγμα, μπορείτε να κάνετε το κείμενο να εμφανίζεται σταδιακά, έναν χαρακτήρα τη φορά, για να προσομοιώσετε την πληκτρολόγηση. Αυτό δημιουργεί μια αίσθηση προσμονής και μπορεί να κάνει τον διάλογο πιο ελκυστικό για τον παίκτη.

ΗΧΗΤΙΚΑ εφε

Προσθήκη ηχητικών εφέ στο σύστημα διαλόγου σας μπορεί να βελτιώσει τη συνολική ατμόσφαιρα του παιχνιδιού. Για παράδειγμα, μπορείτε να αναπαράγετε ηχητικά εφέ όταν εμφανίζεται το πλαίσιο διαλόγου ή όταν η συσκευή αναπαραγωγής επιλέγει μια επιλογή διαλόγου. Αυτές οι ηχητικές ενδείξεις μπορούν να κάνουν τη συνομιλία πιο καθηλωτική και εντυπωσιακή.

Βέλτιστες πρακτικές για το σύστημα διαλόγου

Κατά την εφαρμογή ενός συστήματος διαλόγου, λάβετε υπόψη τις ακόλουθες βέλτιστες πρακτικές:

Εκκαθάριση διεπαφής χρήστη

Βεβαιωθείτε ότι το πλαίσιο διαλόγου και το κείμενο είναι ευανάγνωστα και σωστά τοποθετημένα στην οθόνη. Χρησιμοποιήστε κατάλληλες γραμματοσειρές, χρώματα και μεγέθη για να κάνετε το κείμενο ευανάγνωστο.

Συνεπής φωνή χαρακτήρων

Διατηρήστε συνέπεια στον τρόπο ομιλίας των χαρακτήρων και τον τόνο που χρησιμοποιούν σε όλο τον διάλογο. Αυτό βοηθά στη δημιουργία πιστευτών και ελκυστικών συνομιλιών.

Συνάφεια με το παιχνίδι

Βεβαιωθείτε ότι ο διάλογος συμβάλλει ουσιαστικά στην αφήγηση του παιχνιδιού ή παρέχει σχετικές πληροφορίες στον παίκτη. Αποφύγετε τις υπερβολικές ή άσχετες συζητήσεις που μπορεί να διαταράξουν τη ροή του παιχνιδιού.

Δοκιμή και επανάληψη

Αναπαραγωγή δοκιμάστε το σύστημα διαλόγου σας διεξοδικά για να εντοπίσετε τυχόν προβλήματα ή ασυνέπειες. Επαναλάβετε τον διάλογό σας με βάση τα σχόλια των παικτών για να βελτιώσετε τη συνολική ποιότητα και τον αντίκτυπο των συνομιλιών.

Κάντε τα παιχνίδια πιο διασκεδαστικά με το σύστημα διαλόγου

Η προσθήκη ενός συστήματος διαλόγου στα παιχνίδια σας χρησιμοποιώντας τη βιβλιοθήκη Arcade στην Python μπορεί να βελτιώσει σημαντικά την εμπειρία του παίκτη. Επιτρέπει διαδραστικές συνομιλίες, αφήγηση και ανάπτυξη χαρακτήρων, κάνοντας τα παιχνίδια σας πιο καθηλωτικά, ελκυστικά και διασκεδαστικά.