Bonsoir, je souhaite créer un pnj, c'est a dire un personnage qui parlera à l'approche de celui ci mais je ne vois pas trop comment m'y prendre...
Merci de votre aide
Bonsoir, je souhaite créer un pnj, c'est a dire un personnage qui parlera à l'approche de celui ci mais je ne vois pas trop comment m'y prendre...
Merci de votre aide
salut ce n'est pas particulièrement une problématique liée à un langage en particulier ( ici Java ) mais à la conception des jeux en général ( et algorithmes, POO...)
pour créer un PNJ ( personnage non joueur ?) commencer par le plus simple possible.
Et définir une classe qui comportera les paramètres de base du joueur ,ses coordonnées dans l'espace jeu, ses points de vie etc..
on peut créer plusieurs instances de cette classe et les mettre dans un conteneur comme une liste dynamique
Ensuite pour savoir si le joueur se rapproche d'un personnage non joueur il suffit à intervalles réguliers de temps avec un timer de tester la distance entre les positions x0 ,y0 et x1,y1 de tous les PNJ et du joueur principal.
Cette méthode est valable pour une liste de PNJ pas trop élevée mettons 1000 entités.
Au-delà d'un certain nombre d'entités si on boucle à chaque fraction de seconde, le jeu va ralentir.
Pour calculer la distance on applique tout simplement le thérorême de Phytagore.
Si cette distance est inférieure à un certain seuil , pour calculer les différentes distances on va sortir de la boucle qui lit la liste des PNJ et puis on appellera une méthode de la classe PNJ d'un PNJ en particulier pour qu'il fasse quelque chose.
Maintenant il y a des techniques plus sophistiquées ( voir les tutos très bien faits de ce site sur le forum de développement des jeux ) pour faire ça mais toujours commencer le plus simple possible.
Quitte à apporter des méthodes plus sophistiquées par la suite...
L'avantage de créer une classe de PNJ c'est qu'on peut la faire dériver pour créer d'autres types d'entités.
Donc il est souhaitable de définir une classe de base "entité" quitte à créer des classes PNJ et ennemis par exemples qui héritent de cette classe de base.
Si tu ne te sens pas à l'aise encore avec l'héritage , une classe de base simple suffit.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager