Les personnages réalistes interagissent, généralement en se parlant. Assurez-vous de présenter votre dialogue de manière accessible et complémentaire.
Si votre jeu comporte des personnages, vous souhaiterez probablement qu'ils conversent entre eux. Un système de dialogue permet des conversations interactives, la progression de l'histoire et le développement du personnage. La bibliothèque Python Arcade facilite l'intégration d'un système de dialogue dans votre base de code existante.
Avec un système de dialogue, vous pouvez créer des conversations entre le joueur et les personnages non-joueurs (PNJ). Le joueur peut choisir des réponses ou prendre des décisions qui affectent le récit ou le résultat du jeu.
Ce système vous permet de créer des histoires captivantes et de créer des interactions dynamiques, offrant une expérience de jeu plus immersive.
Créer un jeu simple
Pour commencer, créez un jeu simple à l'aide de la bibliothèque Arcade. Cela servira de base à la mise en œuvre du système de dialogue.
Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.
Créer un nouveau fichier nommé jeu-simple.py et définir un Jeu classe qui hérite de arcade. Fenêtre. Définissez les dimensions de l'écran, initialisez les positions du lecteur et de la plate-forme et implémentez la fonctionnalité de dessin de base. Le le joueur peut se déplacer à gauche et à droite à l'aide des touches fléchées.
Voici la sortie :
Ajout d'une boîte de dialogue
Maintenant que vous avez une structure de jeu de base, ajoutez une boîte de dialogue qui apparaît lorsque le joueur entre en collision avec un ennemi. Vous pouvez créer une boîte de dialogue à l'aide de formes simples et l'afficher à l'écran.
Ajouter un dialogue_active drapeau à la Jeu class, qui indique si la boîte de dialogue doit s'afficher. Dans le on_update méthode, vérifier la collision ennemie, et si détecté, réglez dialogue_active pour Vrai.
Dans le on_draw méthode, appelez la draw_dialogue_box méthode si le dialogue est actif. Le draw_dialogue_box La méthode dessine un rectangle comme arrière-plan de la boîte de dialogue et affiche un message texte.
Créer un nouveau fichier nommé boîte de dialogue.py et ajoutez le code avec les mises à jour ci-dessous :
# Dans la classe Game
classeJeu(arcade. Fenêtre):
définitivement__init__(soi):
# ...self.dialogue_active = FAUX
définitivementon_update(soi, delta_time):
si self.check_enemy_collision() :
self.dialogue_active = Vraidéfinitivementon_draw(soi):
# ...si self.dialogue_active :
self.draw_dialogue_box()définitivementcheck_enemy_collision(soi):
player_radius = 25
distance_x = abs (self.player_x - self.platform_x)
distance_y = abs (self.player_y - self.platform_y)
rayon_combiné = rayon_joueur + 25si distance_x < rayon_combiné et distance_y < rayon_combiné :
retourVrai
autre:
retourFAUX
définitivementdraw_dialogue_box(soi):
texte = « Bonjour, joueur! Comment allez-vous?"
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, blanc)
arcade.draw_text (texte, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, noir, font_size=16,
ancre_x="centre", ancre_y="centre")
Ci-dessous la sortie :
Affichage du texte du dialogue
Désormais, vous pouvez améliorer votre système de dialogue en affichant des messages texte dynamiques. Créez une liste de chaînes de dialogue et parcourez-les pour simuler une conversation. Chaque fois que la boîte de dialogue apparaît, elle affiche un nouveau message.
# Dans la classe Game
classeJeu(arcade. Fenêtre):
définitivement__init__(soi):
# ...self.dialogue_active = FAUX
self.dialogue_messages = [
« Bonjour, joueur! Comment allez-vous?",
« Beau temps aujourd'hui, n'est-ce pas? »,
« Méfiez-vous des ennemis qui vous guettent! »
]
self.dialogue_index = 0
définitivementdraw_dialogue_box(soi):
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, blanc)
arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, noir, font_size=16,
ancre_x="centre", ancre_y="centre")
Introduisez trois nouvelles variables: dialogue_messages, dialogue_index, et dialogue_active. La liste dialogue_messages contient les messages texte que la boîte de dialogue affichera. Le dialogue_index garde une trace du message actuel à afficher. Chaque fois que la boîte de dialogue apparaît, vous pouvez incrémenter le dialogue_index pour afficher le message suivant.
Ajouter un bouton
Pour rendre le système de dialogue plus interactif, ajoutez un bouton pour changer le texte du dialogue lorsqu'il est pressé par le joueur. Créer un nouveau fichier nommé multi-texte.py et ajoutez le code avec les mises à jour ci-dessous :
# Dans la classe Game
classeJeu(arcade. Fenêtre):
définitivement__init__(soi):
# ...self.dialogue_active = FAUX
self.dialogue_messages = [
« Bonjour, joueur! Comment allez-vous?",
« Beau temps aujourd'hui, n'est-ce pas? »,
« Méfiez-vous des ennemis qui vous guettent! »
]self.dialogue_index = 0
définitivementon_mouse_press(soi, x, y, bouton, modificateurs):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)si self.dialogue_active :
si bouton == arcade. MOUSE_BUTTON_LEFT :
self.dialogue_index = indexdéfinitivementdraw_dialogue_box(soi):
# ...
arcade.draw_text("Suivant", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
noir, font_size=16, ancre_x="centre", ancre_y="centre")
Ajouter le on_mouse_press méthode à la Jeu classe. Lorsque le dialogue est actif et que vous appuyez sur le bouton gauche de la souris, cette méthode incrémente le dialogue_index pour afficher le message suivant dans dialogue_messages liste. Le % len (self.dialogue_messages) garantit que l'index revient au début de la liste lorsqu'il atteint la fin.
Inclure des fonctionnalités supplémentaires
Pour améliorer davantage le système de dialogue, vous pouvez envisager d'ajouter les fonctionnalités supplémentaires suivantes :
Choix multiples
Au lieu d'un seul message, vous pouvez proposer plusieurs choix au joueur. Cela permet au joueur d'influencer le résultat de la conversation ou de prendre des décisions qui affectent la progression du jeu.
Pour l'implémenter, vous pouvez modifier le draw_dialogue_box méthode pour afficher une liste de choix et gérer la sélection du joueur en conséquence.
Portraits de personnages
Pour ajouter une touche visuelle à votre système de dialogue, vous pouvez incorporer des portraits de personnages à côté du texte. Chaque personnage peut avoir une image ou un sprite correspondant qui le représente pendant la conversation. L'affichage de portraits de personnages peut aider les joueurs à identifier l'orateur et ajouter de la profondeur à l'expérience de narration.
Animation de texte
Vous pouvez animer le texte pour le rendre plus attrayant visuellement. Par exemple, vous pouvez faire apparaître le texte progressivement, un caractère à la fois, pour simuler la frappe. Cela crée un sentiment d'anticipation et peut rendre le dialogue plus engageant pour le joueur.
Effets sonores
Ajout d'effets sonores à votre système de dialogue peut améliorer l'atmosphère générale du jeu. Par exemple, vous pouvez jouer des effets sonores lorsque la boîte de dialogue apparaît ou lorsque le joueur sélectionne une option de dialogue. Ces signaux audio peuvent rendre la conversation plus immersive et percutante.
Meilleures pratiques pour le système de dialogue
Lors de la mise en œuvre d'un système de dialogue, gardez à l'esprit les meilleures pratiques suivantes :
Interface utilisateur claire
Assurez-vous que la boîte de dialogue et le texte sont lisibles et correctement positionnés à l'écran. Utilisez des polices, des couleurs et des tailles appropriées pour rendre le texte facile à lire.
Voix de caractère cohérente
Maintenez la cohérence dans la façon dont les personnages parlent et le ton qu'ils utilisent tout au long du dialogue. Cela aide à créer des conversations crédibles et engageantes.
Pertinence pour le gameplay
Assurez-vous que le dialogue contribue de manière significative au récit du jeu ou fournit des informations pertinentes au joueur. Évitez les conversations excessives ou non pertinentes qui pourraient perturber le déroulement du jeu.
Test et itération
Testez soigneusement votre système de dialogue pour identifier tout problème ou incohérence. Itérez votre dialogue en fonction des commentaires des joueurs pour améliorer la qualité globale et l'impact des conversations.
Rendez les jeux plus amusants avec le système de dialogue
L'ajout d'un système de dialogue à vos jeux à l'aide de la bibliothèque Arcade en Python peut grandement améliorer l'expérience du joueur. Il permet des conversations interactives, la narration et le développement de personnages, rendant vos jeux plus immersifs, engageants et amusants à jouer.